qmakeの仕組みがわからなくなってしまいました。 は、私は次のような構造を持つプロジェクトたい:qmake .proファイルが正しく解析されず、LD_LIBRARY_PATHが生成されない
ルートを
- ビン
- testjson
- libに
-
libjson.so
- SRC
- testjson.cpp
は私が望んでいたすべてのは、JSONライブラリーを試験することでした。 Qt Creator 2.3.0で新しい空のプロジェクトを作成し、実行可能ファイルが実行されるようにすべての設定を設定しました。私が望むものをテストし、アプリケーションを閉じました。
後でQt Creatorを再度開いたときに、.proファイルを読み込んで驚きました。プロジェクトを実行しようとすると「No executable specified」というメッセージが表示されます。 :|この場合、私はプロジェクトタブに行き、手動で実行可能ファイルを選択しましたが、期待通りに実行しようとしたときに、次のエラーメッセージが表示されます。共有ライブラリをロード中にエラーが発生しました:libjson.so:共有オブジェクトファイルを開くことができません:ファイルまたはディレクトリー "と呼びます。 LD_LIBRARY_PATHが設定されていないので、期待されていました(cliから実行するようなものです)。
私はselectig Runタブを使用していたときに初めてプロジェクトタブに.proファイルが正しく解析されていないように見えました。「Parsing .pro file」と実行中です。 configがいっぱいになってグレー表示されたので、.proファイルの解析後にQt CreatorによってLD_LIBRARY_PATHが追加されたことを意味します。
私の探求は、なぜ.proファイルが初めて正しく解析されたのですか?
!include(../../common.pri){
error(Couldn't find the common.pri file!)
}
TEMPLATE = app
SOURCES += testjson.cpp
CONFIG += console
TARGET = testjson
CONFIG(release, debug|release) {
DESTDIR = $$BinaryDir/Release
} else {
DESTDIR = $$BinaryDir/Debug
}
LIBS += -L$$LibraryDir -ljson
INCLUDEPATH += $$DefaultInclude
DEPENDPATH += $$LibraryDir
PS:
はここ.PROファイルのソリューションは、手動で、建物の環境にLD_LIBRARY_PATHを追加することですが、私はそれを行うには、この権利ではない方法を見つけます。
PSで述べたように私はすでに解決策を知っていましたが、手動でLD_LIBRARY_PATHを手動で追加するのは間違いです。翌日、私は最初からプロジェクトを再構築し、ライブラリを追加し、すべてが完璧に機能しました。私はまだ、第1版で ".proファイルを解析できませんでした"というメッセージが出てきた理由を知りません。おそらくそれは.pro.userファイルと関係がありました。しかし、すべてがうまくいくようになりました。 –
「ビルド環境にLD_LIBRARY_PATHを追加する」という解決策は、ビルド環境を使用するデフォルトの実行環境設定を使用している可能性が高いためです。これは、あなたの問題を解決する副次的な効果です。これは主なやり方です。 – jwernerny