Forums » Compilation problems »
Problèmes de chemins d'accès aux librairies
Added by Giraldeau Francis over 8 years ago
Voici quelques problèmes avec les librairies dépendantes:
Sous Linux, dans le fichier all_check_dependencies.pri:
OSG_LIB_ADD = osg ... for(a, OSG_LIB_ADD) { ... LIBS += -l$$lib{a} }
La substitution de -l$$lib{a} produit: -l{a}, car la variable $$lib n’est pas définie. Si un plugin inclut ce fichier, alors la compilation ne fonctionne pas avec une erreur de librairie introuvable. De plus, il ne faut pas spécifier "-llibosg” dans ce cas-ci, mais bien "-losg” tout simplement. En fait, la variable LIBS est définie deux fois, soit dans all_check_dependencies.pri et dans include_all.pri. Les chemins ne sont pas en doubles, car je pense que qmake empêche les doublons. Tout de même, il serait préférable de nettoyer les directives LIBS dans all_check_dependencies.pri pour éviter les ambigüités.
La logique de configuration pour le mode debug v.s. release est exactement le même avec Linux (contrairement à Windows où la librairie debug a un suffix), on pourrait enlever complètement le test CONFIG.
Pour l’instant, j’ai ajouté le fichier all_check_dependencies.pri sur github pour obtenir vos commentaires.
En général, la gestion des dépendances sous Linux est super facile avec pkg-config, qui retourne les cflags et ldflags pour une librairie.
Sous Windows, j’ai regardé rapidement pour un package manager, j’ai trouvé Conan.io, mais il manque plusieurs librairies et cela fonctionne avec cmake (quoi qu’il doit être possible de supporter avec un peu d’effort qmake). Les dépendances précompilées sont téléchargées dans le répertoire $HOME/.conan/.
Sinon, on pourrait utiliser Cygwin, mais toutes les librairies sont compilées avec MingGW il me semble. Est-ce que computree nécessite MSVC, ou s’il serait possible de le compiler avec MingGW?
Merci!
Replies (2)
RE: Problèmes de chemins d'accès aux librairies - Added by Giraldeau Francis over 8 years ago
Je viens de voir qu’un correctif est déjà dans le svn pour le problème de -l$$lib{a}.
RE: Problèmes de chemins d'accès aux librairies - Added by Krebs Michaël over 8 years ago
Oui j’ai enlevé les libs += dans ce fichier car elles n’ont rien a faire ici. On pourrais utiliser Mingw mais il faudrait recompiler qt car aucune version de qt 64bits n’est disponible avec Mingw. Autant dire qu’on peut laisser tomber cette idée car les gens n’ont pas envie de recompiler qt.