2017-01-18 6 views
0

Linux Ubuntuでダイナミックライブラリ(.so)をテストするためのサンプルプロジェクトを作成しました。実行ファイルはターミナルから実行されますが、アプリケーション内で失敗します

プログラムは正しくコンパイルされ、端末から起動すると実行されます。それは期待どおりに動作します - 端末で./Mainはすべての依存関係と機能を見つけます。

QT内から起動する(/ファイル名を指定して実行を構築する)私はエラーを取得:Cannot open a_dependent_library.so: cannot open shared object file: No such file or directory

私の環境変数a_dependent_library.so

を置かれているディレクトリが含まれていLD_LIBRARY_PATHを教えてください。

+0

QtCreatorが起動された環境で '$ LD_LIBRARY_PATH'が設定されていますか? また、Project-> Kit/Runで設定することもできます。 –

+0

Qtプロジェクトを作成中です。すでにcmakeファイルがあります。 cmakeにLD_LIBRARY_PATHを設定する方法はありますか? (私はそのディレクトリが既にLD_LIBRARY_PATHにあるので、a_dependent_library.so自体を選ぶべきだと思っていた) – haroon

+0

私はcmakeファイルでこれを試した: link_directory(../lib)(これは絶対パスで動作する。そして、target_link_librariesの-la_dependent_libraryを使用すると、エラーは解決されますが、絶対パスのみが使用されます – haroon

答えて

1

QTCreator ---> Projects - > Executeタブ(Not Compileタブ)--->実行環境--->でenv変数を追加してください。

これらはqtプロジェクトの実行で使用されるenv変数です。

関連する問題