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

Qt Creator Discussion :

Ajout de bibliothèque


Sujet :

Qt Creator

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut Ajout de bibliothèque
    Bonjour,

    Je tiens à signaler que je suis débutant en programmation en C++. Je me suis donc intéressé à Qt via QTcreator, sur Windows, pour sa simplicité à créer des fenêtres pour des petites applications.
    Seulement, j'ai également besoins de faire appel à plusieurs bibliothèque qui peuvent me rendre de grand service.
    J'ai installé Qwt assez facilement, il faut dire que c'est une bibliothèque pour Qt.
    Mais lorsque que je vais installer d'autre bibliothèque, cela se complique car leur compilation n'est pas forcement adapté à QtCreator et à Mingw32. Je me retrouve donc avec tout un tas de difficulté pour compiler et le taux de réussite est proche de zéro ... Je réussi parfois avec des bibliothèque très simple (genre 1 headers et quelques fichier sources en les chargeeant dans Qt creator).
    Alors voilà mes interrogationd:
    Plusieurs bibliothèqe sont fourni avec des MakeFile, mais ces fichier sont ils adapté à un compilateur ou peuvent il être utilisé avec plusieurs compilateur ?
    Existe il une procédure simple pour compiler des bibliothèques diverses avec Qt creator ?

    Si quelqu'un peu m'éclairer, je serais très reconnaissant ...

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 243
    Par défaut
    Chaque bibliothèque a son "mode d'emploi", sa procédure de configuration. Elle peut être différente à chaque fois, "CMake", "qmake", "Makefile", "Configure"... autant d'outils que tu risques de rencontrer et qu'il te faudra apprendre à maîtriser.

    Un bon point de départ est de lire les fichiers de docs de la librairie, souvent nommés "README", "INSTALL" ou quelquechose dans ce goût là.

    Comme tu débutes, sache au moins ceci :
    Sous windows, le compilateur natif (de Microsoft) est MSCV : Microsoft visual C++ (l'éditeur est Visual Studio), l'outil en ligne de commande est "nmake". MingW est en fait un port des outils Linux (compilateur GCC) sous windows.
    Tu dois trouver dans ton menu démarrer dans ton install Qt une invite de commande Qt. Si tu la lances tu as accès aux commandes Mingw. C'est à dire "ls" comme dans linux et pas "dir" comme sur windows.

    Si tu as des problèmes précis, ouvre un post par problème en indiquant le maximum de détails sur la lib que tu essaies de compiler.

    C'est assez galère au début quand on n'y connait rien de compiler des librairies tièrces. Bon courage

  3. #3
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Je suis actuellement en train d'essayer de compiler CGAL pour la faire fonctionner avec QT Creator.
    J'ai réussi à compiler Boost (le test proposer marche, donc à priori c'est bon)
    Par contre je bloque avec la compilation de CGAL via Cmake, il me dit qu'il ne trouve pas la librairie boost_thread, alors que j'ai mis les headers, *.dll et les *.a dans un repertoire que j'ai renseigné via les variable BOOST_ROOT et Boost_LIBRARYDIR

    La question est : Est ce que je doit renommer les *.a ou les *.dll pour qu'il soit reconnu par cmake ? ou le problème est ailleurs ? ...

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 243
    Par défaut
    A la compilation il a besoin des includes (*.h) et des librairies (*.lib). Il n'est pas conseillé du tout de recopier ces fichiers de ton repertoire boost vers celui de CGAL. Tu dois indiqué dans la configuration de CMake où se trouve la librairie boost, son repertoire src ou include et son repertoire lib.

    Ensuite à l'exécution du programme, il faut les *.dll, ceux là tu dois les recopier depuis les répertoires de tes libs dans le répertoire de ton exécutable.

  5. #5
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Merci pour la réponse, mais j'avais déjà compris tout ça ...
    Je n'ai rien recopié vers CGAL, et j'ai bein indiqué les répertoires des includes et des lib via des variable ajouté sous Cmake_gui. Par contre, comme j'essaye de compiler en statique, ce n'est pas des *.dll mais des *.a que j'ai (sous mingw, les binaire statique sont des *.a, si je ne me trompe pas).
    Je me pose les questions suivante : $
    comment cmake reconnait les bibliothèque adéquate qui sont dans le répertoire renseigné : par leur nom ou par leur contenu ?

    Faut il dire à cmake que l'on compile en statique, et par qu'elle variable on fait ça ?

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 243
    Par défaut
    Là je passe le relais...

  7. #7
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par vinceouille Voir le message
    Par contre, comme j'essaye de compiler en statique, ce n'est pas des *.dll mais des *.a que j'ai (sous mingw, les binaire statique sont des *.a, si je ne me trompe pas).
    . Mais où apprenez-vous ça, il faut buter de toute urgence toute source d'âneries pareilles ! Ce genre de gars devrait pouvoir s'exprimer aux murs et en recevoir des réponses violentes, il ne peut pas parler à un seul être humain sous peine de lui mettre toutes les idées de travers !

    Non, non et non, jamais. Tu n'arriveras jamais à lier une seule DLL sans .a. Tu as toujours un .a sous GCC et un .lib sous VC. La différence, c'est que, en dynamique, il contient les points d'entrées de la DLL ; en statique, il contient toute la DLL.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. comment ajouter une bibliothèque
    Par niele1 dans le forum Visual C++
    Réponses: 2
    Dernier message: 15/10/2007, 12h03
  2. Ajouter des bibliothèques dans un Makefile
    Par insa59 dans le forum GTK+ avec C & C++
    Réponses: 24
    Dernier message: 11/04/2007, 18h50
  3. Réponses: 1
    Dernier message: 16/03/2007, 10h34
  4. [Debutant] Ajouter la bibliothèque CxImage à un projet
    Par BNS dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 09/02/2006, 21h04
  5. [LIBRAIRIE] ajout de bibliothèque
    Par itsmii dans le forum C++
    Réponses: 1
    Dernier message: 11/11/2004, 11h12

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