IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Questions sur les compilateurs


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut Questions sur les compilateurs
    Bonjour à tous.

    Je suis en train de développer un petit programme ainsi que deux petites librairies dynamiques. Je souhaite compiler le tout sous linux ET windows.
    Je souhaite donc passer par la commande Make disponible avec GCC et MINGW.

    Mais voila, je me heurte à quelques soucis:

    • Dois-je écrire un seul Makefile ou au moins deux (pour linux et windows)

    • Puis-je informer que je souhaite compiler pour un 4 coeurs et si cela va influencer le programme de sortie (plus rapide pour les quadcores ou identique).


    • Comment savoir si je compile un programme pour un PC 64 ou 32?

    • Créer un .dll et un .so revient-il à la même commande. Sinon comment faire pour mettre une condition (qui retourne vrai si linux par exemple).


    • Peut on créer ses propres flags: make -patati -patata



    Merci de bien vouloir m'éclaircir sur ces points.

  2. #2
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    Connais-tu cmake? Si non, voici quelques bonnes raisons de s'y mettre.

    Résolution de tes problèmes

    Dois-je écrire un seul Makefile ou au moins deux (pour linux et windows)
    Un seul fichier décrivant ta compilation. CMake génère au choix :
    * Un Makefile pour Unix (make)
    * Un Makefile pour MinGW (mingw-make)
    * Un Makefile pour Visual Studio (nmake)

    Puis-je informer que je souhaite compiler pour un 4 coeurs et si cela va influencer le programme de sortie (plus rapide pour les quadcores ou identique).
    Tu peux générer un header du type config.h à l'aide de variables définie par l'utilisateur.

    Comment savoir si je compile un programme pour un PC 64 ou 32?
    Tu peux détecter si le compilo est en 64 bits en récupérant la taille d'un void* et t'en servir pour générer ta configuration.

    Tu peux forcer la compilation en 32 bits en passant des variables au compilateur et au linker en fonction du système (if MSVC, if UNIX, etc...)

    Créer un .dll et un .so revient-il à la même commande. Sinon comment faire pour mettre une condition (qui retourne vrai si linux par exemple).

    Peut on créer ses propres flags: make -patati -patata
    Avec CMake oui! Tu créer un bibliothèque SHARED et tu ajoutes les définitions de variables de préprocesseur qui vont bien (classiquement MALIB_BUILD_DLL)

    A la main, les commandes gcc et visual ont rien à voir => il faut gérer des définitions de flags différentes dans les Makefiles.

    Bonus

    - Tu peux générer des projets pour les IDE
    - Tu gères de manière plus simple les dépendances (recherche automatisée)
    - Tu gères de manière plus simple les versions
    - Tu peux met en place assez facilement le "make install" pour différents systèmes
    - Une IHM pour choisir les options de compilation
    - ...

    Le bémol

    CMake possède son propre langage qui ressemble à peu d'autre du coup la prise en main est un peu difficile. Toutefois, la documentation est complète et il y a de nombreux utilisateurs donc l'auto-formation à coup de tuto. fonctionne. Jette un œil à celui ci pour te faire une idée au pire :

    http://florian-goujeon.developpez.co...ke/initiation/


    Alternative

    Si tu utilises déjà QT, qmake avec les fichiers .pro remplit sensiblement le même objectif : Créer un projet compilable sur différentes plateforme. Les fonctionnalités sont moins riches que dans CMake, mais du coup il est plus facile à prendre en main. Dans la mesure où QtCreator se base (entre autre) sur ces .pro, tu peux ouvrir le projet dans un IDE.



    Quoiqu'il en soit, même si ça rebute au début de prendre en main ces outils, faire des projets Makefile multi-plateforme à la main sachant que ces générateurs de Makefile existent serait dommage.


    Bye

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Sinon, il y a Scons, dont les projets s'écrivent en Python.

  4. #4
    screetch
    Invité(e)
    Par défaut
    ou waf

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut
    Merci pour vos réponse, je vais tester ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questions sur les compilateurs java
    Par irenee dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 30/05/2006, 10h42
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo