複数のLIBSと1つのexeファイルとQtCreatorプロジェクト
質問
私はQtCreatorにVC ++からQtのプロジェクトを移植することを計画しています、前の質問で言ったように。
このプロジェクトは、4つのサブプロジェクトで構成されています。それらの3はLIBSであり、最後のものはexeファイルを作ります。 サブプロジェクトは、それぞれの層がその下の層に、時間依存関係をコンパイルとリンクしていることを意味し、積層されています。
次のようにファイルが整理されています:
root
lib1
lib2
lib3
main
私は、最初からQtCreatorにサブプロジェクトのそれぞれを作成しました。 (: - > lib1.pro LIB1例えば)各フォルダには、同じ名前のプロファイルが含まれています。このアプローチを使用して、私は実行可能ファイルをリンクする必要があり、最後の1以外のすべてのプロジェクトを構築しています。私は手動でプロファイルを編集し、以下のコードを追加することによって、私は固定リンカエラーを得ていた。
LIBS += ../path/lib1.a \
../path/lib2.a \
../path/lib3.a
今ではLIB2とLIB1からシンボルを見つけることができないことをLIB3文句を除き、すべてのは、結構です。 Addind lib2.proファイルへのLIBSは動作しません。
私はLIBSと実行ファイルで動作QtCreator方法が届かない気持ちを持っています。それは正しくコンパイルとリンクするようにどのようなプロジェクトを整理するのでしょうか?
解決
は、いくつかのより多くの問題に取り組んした後、私は、GCCツールチェーン用のリンカ・パラメータの順序が重要であることを覚えています。
LIBSエントリを逆にすると、トリックをやっています。
他のヒント
あなたが答えを見つけ見ることがうれしいです。また、追加することもできます:
CONFIG += ordered
あなたのルートディレクトリ.PROファイルに(それはSUBDIRSのプロファイルにのみ有効です)。それはあなたがすべての状況下にリストされた順序を保存するのMakefileを生成するqmakeのを強制します。