QT作成者を使用したUNIXシステムでQTアプリケーションを開発します
-
08-10-2019 - |
質問
QT Creator(2.1 RC)を使用してLinuxでQTアプリケーションを開発しています。 2つのプロジェクトを作成し、ウィザードを使用してライブラリプロジェクトをアプリケーションプロジェクトに追加しました。ただし、実行すると、エラーが表示されます。
/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
QTクリエーターが環境を適切に設定して実行できるように設定できるQMake変数はありますか?ビルドをテストできるように、ランチャースクリプトを使用してすべてのファイルを別のディレクトリにコピーする必要があるのは非常に面倒です。 Windowsで完全に機能します-QTクリエーターは、アプリケーションを実行するとDLLを含むディレクトリをパスに自動的に追加します(Explorerから実行するとDLLが見つかりません)。 Mac OS Xはさらに悪いことに、すべてでinstall_name_toolを実行する必要があります...
では、QTクリエーターの実行ボタンからすべてが機能するように、QMakeファイルを設定するにはどうすればよいですか?この能力なしでもデバッグするのは難しいです。
解決
はい、作成者には、アプリを実行するために必要な環境を設定できるセクションがあります。
クリエーター2.0.0では、プロジェクト - >ターゲット - >(ターゲット) - > run-> run環境(プロジェクトを開いた後)によってアクセスされます。
その後、必要な環境変数を追加または削除できます。 LD_LIBRARY_PATH
私が確信していないことの1つは、たとえば、それらの変数の値にビルドパスを置き換えることができるかどうか、それをあなたにハードコードする必要がないようにすることです。 LD_LIBRARY_PATH
.
別のオプションは、必要な変数を設定する小さなシェルスクリプトをソースツリーに追加し、そのスクリプトを実行する「カスタム実行可能ファイル」実行構成を追加することです。同じ画面からアクセスされます。
他のヒント
LinuxマシンでQTCreatorを使用してQTアプリを実行している同様の問題がありました。クライアントアプリケーションの.proファイルに次の行を追加することで解決しました。
unix:LIBS += -L/home/projects/my_libs/ -lmy_lib
unix:{
QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
QMAKE_LFLAGS_RPATH=
}
rpathに関する情報はこちら: rpath
これが役立つことを願っています
これを使用するだけです:
unix:LIBS += -L/home/projects/my_libs/ -lmy_lib
unix:{
QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
}
それも私の問題を抑えました。