2017-02-08 20 views
3

私が書いたライブラリを使用するプロジェクトがあります。私の主なプロジェクトでは、これらのライブラリをリンクしています。Qtで静的ライブラリと動的ライブラリの両方を使用できますか

LIBS += -LPATH_TO_LIBS -lsomename 

だから普通のものです。すべてのライブラリを動的なlibとしてビルドすると、うまく動作します。静的ライブラリとしてすべてのライブラリをビルドすれば、何らかの理由でg++がダイナミックライブラリに優先順位を付けるため、リンカエラーが発生します。しかし、私がリンカオプションに-Wl,-Bstaticを追加しても、うまくいきます。ここに私の問題があります:

いくつかのlibsの静的バージョンと他の動的バージョンを使いたいと思います。どうすればこれを達成できますか?

答えて

0

静的ライブラリと動的ライブラリの両方を使用しても問題はありません。次のコマンドラインは動作するはずです:オブジェクトファイルとライブラリはインポート/エクスポートシンボルは、リンカためにと静的LIBSのために分析されているので、静的ライブラリは、オブジェクトファイルとコマンドラインでの動的ライブラリの後に置かれるべきであることを

g++ object1.o object2.o -lmydynamiclibrary -lmystaticlibrary -o binary 

注意をその瞬間に必要であることが分かっているエクスポートされたシンボルだけを保持します。

あなたがより詳細な回答をしたい場合は、リンカのために実行したコマンドラインが何であるかを教えなければならないとエラーが、あなたは

を得るものです
関連する問題