2011-01-08 18 views
3

Qt Creator(2.1 RC)を使用してLinuxでQtアプリケーションを開発しています。 2つのプロジェクトを作成し、ウィザードを使用してライブラリプロジェクトをアプリケーションプロジェクトに追加しました。私はそれを実行したときしかし、私はエラーが表示されます。Qt Creatorを使用したUnixシステムでのQtアプリケーションの開発

/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のCreatorは実行するために適切な環境を設定するように設定することができますいくつかのqmakeの変数がありますか?ビルドをテストできるように、ランチャースクリプトを使ってすべてのファイルを別のディレクトリにコピーする必要があります。 Windows上では完全に動作します - Qt Creatorは、アプリケーションを実行するときにDLLを含むディレクトリをPATHに自動的に追加します(エクスプローラからDLLを実行してDLLが見つからないと言います)。 Mac OS Xはさらに悪いことに、install_name_toolをすべて実行する必要があります...

Qt Creatorの実行ボタンからすべてが正しく機能するようにqmakeファイルを設定するにはどうすればよいですか?この能力がなければ、デバッグするのは難しいです。

答えて

5

についてはい、作成者が持っていますアプリケーションを実行するために必要な環境を設定できるセクション。クリエーター2.0.0で

これはによってアクセスされる:プロジェクト - >ターゲット - >(ターゲット) - >実行 - >実行環境(プロジェクトを開いた後)

あなたはその後、いずれかを追加または削除することができますLD_LIBRARY_PATHを含むあなたが望む環境変数私が確信していることの1つは、代用が可能な場合です。それらの変数の値へのパスを構築してください。そのため、あなたはその変数をあなたのLD_LIBRARY_PATHにハードコードする必要はありません。

もう一つの選択肢は、必要な変数を設定する小さなシェルスクリプトをソースツリーに追加し、そのスクリプトを実行するための "カスタム実行可能"実行構成を追加することです。それは同じ画面からアクセスします。ただ、これを使用して

6

LinuxマシンでQTCreatorを使ってqtアプリケーションを実行しても同様の問題が発生しました。私は、クライアントアプリケーションの.PROファイルに次の行を追加して、それを解決してきました:RPATHの

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

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

情報はここにある:このことができますrpath

希望、

+0

動的リンカを無効にするので、RPATHの悪い習慣を使用していませんか? –

+0

ええ、そうですが、rpathを使うのは悪い練習と見なされることもありますが、この場合は問題に適した解決策が見つかりませんでした。だから私はそれを使用するか、ランチャースクリプトを使って自分のものを実行するという選択肢がないと思う。 –

+0

'QMAKE_RPATHDIR + =/path/blub'が私のために働いた。 – Adam

1

:それはあまりにも私の問題をslovedだ

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

関連する問題