2017-01-18 2 views
0

J'ai créé un exemple de projet pour tester ma bibliothèque dynamique (.so) sous Linux Ubuntu.L'exécutable s'exécute à partir du terminal mais échoue dans l'application

Le programme compile correctement et s'exécute lors du lancement à partir du terminal. Il fonctionne comme prévu - Dans le terminal ./Main trouve toutes les dépendances et les fonctions.

Lors du lancement de l'intérieur de l'intervalle QT (Build/Run) Je reçois l'erreur: Cannot open a_dependent_library.so: cannot open shared object file: No such file or directory

Mes variables d'environnement LD_LIBRARY_PATH contient le répertoire dans lequel se trouve a_dependent_library.so

S'il vous plaît conseiller.

+0

Est-ce que '$ LD_LIBRARY_PATH' est défini dans l'environnement dans lequel QtCreator a été lancé? Alternativement, vous pouvez le définir dans le projet -> Kit/Run –

+0

J'ai déjà un fichier cmake, en utilisant ce que je crée le projet Qt. Existe-t-il un moyen de définir LD_LIBRARY_PATH dans cmake? (Je suppose qu'il devrait choisir le a_dependent_library.so lui-même, comme son répertoire est déjà dans LD_LIBRARY_PATH) – haroon

+0

J'ai essayé ceci dans le fichier de cmake: link_directories (../ lib) (ceci fonctionne seulement avec le chemin absolu, que je fais idéalement 't want), puis en utilisant -la_dependent_library dans target_link_libraries résout l'erreur mais avec le chemin absolu seulement – haroon

Répondre

1

assurez-vous d'ajouter la variable d'environnement dans QTCreator ---> Projects -> onglet Exécuter (onglet pas de compilation) ---> environnement d'exécution ---> ajouter le vôtre.

Ce sont les variables d'environnement utilisées dans le projet Run of the qt.