Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Configuration d'un projet avec la librairie gecode

September 2016 modifié dans Divers et inclassable
Bonjour à tous,

Je souhaite utiliser la librairie gecode pour un projet perso mais je n'arrive pas à l'utiliser dans un projet Qt. (je précise que je n'ai pas une grande expérience avec Qt)

La librairie a été compilée et installée conformément à la documentation de Gecode. Je peux d'ailleurs compiler un fichier d'exemple en passant par les lignes de commandes g++. Mais quand je veux compiler le même fichier avec Qt, c'est le drame. J'obtiens plus de 300 erreurs du style "undefined reference".

Pourtant dans le .pro file, j'ai ajouté les lignes suivantes (et oui les fichiers se trouvent bien aux endroits indiqués) :
INCLUDEPATH += /usr/local/include
LIBS += -L/usr/local/lib
-lgecodeflatzinc
-lgecodedriver
-lgecodegist
-lgecodesearch
-lgecodeminimodel
-lgecodeset
-lgecodefloat
-lgecodeint
-lgecodekernel
-lgecodesupport


J'ai aussi ajouté une variable d'environnement dans le kit utilisé par le projet. La variable est LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/usr/local/lib

Je ne vois pas ce que j'ai oublié de faire.
Je suis sur Ubuntu 14.04 avec qt 5.6.1 et qt creator 4.0.1.

Cordialement.

Réponses

  • Bonjour,
    pourrais-tu nous montrer quelques lignes de la sortie de compilation pour que l'on voit ce qui échoue au link.
  • Oui bien sur.

    Voici les première lignes :
    /home/fabiche/Qt5.6.1/5.6/gcc_64/bin/qmake -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug -o Makefile ../gecode/gecode.pro
    g++ -Wl,-rpath,/home/fabiche/Qt5.6.1/5.6/gcc_64/lib -o gecode main.o -L/usr/local/lib -L/home/fabiche/Qt5.6.1/5.6/gcc_64/lib -lQt5Core -lpthread
    main.o: In function `main':
    /home/fabiche/workspace/code/gecode/build-gecode-Desktop_Qt_5_6_1_GCC_64bit-Debug/../gecode/main.cpp:204: undefined reference to `Gecode::SizeOptions::SizeOptions(char const*)'
    /home/fabiche/workspace/code/gecode/build-gecode-Desktop_Qt_5_6_1_GCC_64bit-Debug/../gecode/main.cpp:211: undefined reference to `Gecode::SizeOptions::parse(int&, char**)'
    main.o: In function `Gecode::Exception::~Exception()':
    /usr/local/include/gecode/support/exception.hpp:46: undefined reference to `vtable for Gecode::Exception'
    main.o: In function `Gecode::MemoryExhausted::MemoryExhausted()':
  • Salut,
    bizarre, sur la commande g++, je ne vois pas de référence au linkage des libs gecode.
  • Effectivement, j'avais fais plusieurs erreurs :

    le chemin n'était pas entre guillemets
    et je faisais des retours à la ligne sans le \

    Cependant j'ai toujours une erreur au runtime.
    Il n'arrive pas à trouver une librairie partagée "libgecodeint.so.41".

    Conformément à la doc de gecode, il faut faire un
    export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/usr/local/lib
    .

    J'ai donc essayé de configurer cette variable dans le menu "projects->run environment" mais sans effet.
  • Bonjour,
    as-tu essayé ta commande export dans un terminal, et ensuite lancer l'exe dans ce même terminal ?
  • oui j'ai essayé et l'exécutable a fonctionné correctement.
Connectez-vous ou Inscrivez-vous pour répondre.