2017-11-01 30 views
0

アプリのQtCreator .proプロジェクトファイルで、私は使用したい共有ライブラリ(libasdf.so on linux)を指定しています。しかし、QtCreatorはライブラリを見つけることができません。私は、いくつかの理由QtCreatorがローカル共有ライブラリを見つけることができません.so

DESTDIR = $$PWD/../../work 

# library headers 
# $$PWD is directory containing this .pro file 
INCLUDEPATH += $$PWD/../../asdf/src/ 
DEPENDPATH += $$PWD/../../asdf/src/ 

# library binaries 
unix: LIBS += -L$$PWD/../../build -lasdf 

私はビルドするとき:app.proファイルで

project/apps/app --> this is $$PWD 
    app.pro 
project/build 
    libasdf.so.1.0.0 --> the actual binary 
    libasdf.so.1.0 ⎫ 
    libasdf.so.1  ⎬--> symbolic links to the binary 
    libasdf.so  ⎭ 
project/asdf/src 
    project/asdf/src/include 
project/work --> this is where the app is built and run 

を私が持っている次のよう

のディレクトリ構造は、(私はこれを変更することはできないのです)です私はを使用してカスタムファイル名を指定して実行コンフィギュレーションを使用してアプリケーションを実行する必要が

Starting /usr/bin/primusrun... 
./app: error while loading shared libraries: libmarion.so.1: 
cannot open shared object file: No such file or directory 

:このエラーを取得します3210(bumblebeeプロジェクト、NVidia Optimusの代替品の一種)を使って私の専用グラフィックスデバイスを使用してください。 libasdf.so/usr/libにインストールされている場合に動作することに注意してください。

QtCreatorのプロジェクト "実行"設定では、作業ディレクトリはproject/workに設定されています。

なぜライブラリパスが追加されないのですか?

答えて

0

私はこの質問を書いていたように、私はこのチェックさで

☑ Add build library search path to LD_LIBRARY_PATH

を言った(/usr/bin/primusrunなし)デフォルトの実行コンフィギュレーションには、このチェックボックスの上につまずいた、それが正常に動作します。 しかし、私はカスタム実行構成ウィンドウで、そのようなチェックボックスがないことを認識し、LIBS +=経由で設定されたライブラリパスは、LD_LIBRARY_PATHに一度も追加されませんでした!

これを手動で環境変数に追加すると、正常に動作します。

しかし私は疑問に思っていますが、これを自動化する方法がないので、.proファイルの定義で十分です。

関連する問題