Question

Je développe une application Qt sous Linux en utilisant Qt Creator (2.1 RC). J'ai créé 2 projets, et utilisé l'assistant pour ajouter le projet de bibliothèque au projet d'application. Cependant quand je le lance, je reçois l'erreur:

/home/jakepetroules/silverlock/silverlock-build-desktop/desktop/silverlock: error while loading shared libraries: libsilverlocklib.so.1: cannot open shared object file: No such file or directory

Y at-il une variable qmake je peux définir pour que Qt Creator va mettre en place l'environnement correctement pour fonctionner? Il est tout à fait ennuyeux d'avoir à copier tous les fichiers dans un autre répertoire avec un script de lancement juste pour être en mesure de tester la construction. Sur Windows, il fonctionne parfaitement - Qt Creator ajoute automatiquement les répertoires contenant les DLL au PATH quand il exécute votre application (où il en cours d'exécution à partir d'Explorer serait dire DLL introuvable). Mac OS X est encore pire, avoir à courir sur tout install_name_tool ...

Alors, comment puis-je configurer mes fichiers qmake pour que tout fonctionne depuis le bouton Exécuter dans Qt Creator? Un peu difficile à déboguer sans cette capacité, aussi.

Était-ce utile?

La solution

Oui, Créateur a une section où vous pouvez définir quel que soit l'environnement dont vous avez besoin pour faire fonctionner votre application.

Le Créateur 2.0.0 est accessible par ce: Projets -> Objectifs -> (cible) -> Exécuter -> Exécuter l'environnement (une fois que vous avez ouvert votre projet)

Vous pouvez ajouter ou supprimer des variables d'environnement que vous souhaitez, y compris LD_LIBRARY_PATH Une chose que je ne suis pas sûr est le cas, il est possible de remplacer par exemple le chemin de construction dans la valeur de ces variables, de sorte que vous n'avez pas à hardcode que dans votre LD_LIBRARY_PATH.

Une autre option serait d'ajouter un petit script shell à votre arbre source qui ensembles que les variables qui sont nécessaires, et ajouter une configuration d'exécution « exécutable personnalisée » pour exécuter ce script. C'est accessible par le même écran.

Autres conseils

J'ai eu un problème similaire en cours d'exécution qt applications avec QtCreator sur ma machine Linux. Je l'ai résolu en ajoutant des lignes suivantes dans le fichier .pro de l'application client:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib

unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
  QMAKE_LFLAGS_RPATH=
}

info sur rpath est ici: rpath

espérons que cette aide, ce qui a trait

Juste en utilisant ceci:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib
unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
}

Il est sloved trop mon problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top