2012-01-02 22 views
3

Eclipse CDTの管理された機能を使用しています。ダイナミックライブラリのみを使用してプロジェクトを作成すると、期待どおりに動作します。しかし、boost_unit_test_frameworkはmain関数を含んでいるため、静的にリンクする必要があります。コマンドラインでは、混合ライブラリ内の動的ライブラリと静的ライブラリにリンクするのは問題ありません。Eclipseは、静的リンクライブラリと動的リンクライブラリを同時に使用して管理します

g++ -L../Debug -L../boost/lib -o "Test" ./Test.o -ldynLib -Wl,-Bstatic -lboost_unit_test_framework -Wl,-Bdynamic 

dynlibやlibcのような標準ライブラリが動的にリンクされているとboost_unit_test_frameworkが静的にリンクされている:これは、実施例です。しかし、この情報をプロジェクトの設定でどのように入力することができますか?私は決して見ることができません。

静的リンクのために、グローバルな場所など、すべてのプロジェクトでこのライブラリにフラグを立てることができます。 QNX([manual])が使用する規約があります。 LIBPREF_libraryおよびLIBPOST_libraryを使用して、指定されたライブラリの前または後にオプションを追加することは可能です。

更新: 私はまだ説明された問題を解決する方法がありません。しかしその間、私は自分のビルドシステムをManaged MakeからCMakeに切り替えました。それは、インデックスブーストすることが可能であり、いくつかの内部構造を更新しながら、UIをフリーズしていないため、さらに私は今... Qtの創造主を使用しています

[手動] http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/prog/make_convent.html#USEMAC

答えて

1

私は、あなたがする必要はないと思いますリンクの種類を指定します。動的ライブラリは静的にリンクすることはできず、その逆もありません。私のプロジェクトの1つでは、プロジェクトプロパティ - > C/C++ビルド - >設定で、ライブラリの下に静的ライブラリと動的ライブラリの両方が表示されています。彼らはどんなタイプのものか、うまくリンクしているように思えます。

+0

オブジェクトの問題が言及したライブラリboost_unit_test_frameworkが動的として利用可能であるということです**と**静的ライブラリ。私はboost_unit_test_frameworkを除いて動的にリンクしたい。私は明示的に(管理されたmake C++プロジェクト内の)単一のライブラリのリンクを設定する方法がないことがわかりました。 – Christian

2

Dynalic図書館に行く:リンカ/ライブラリ/ライブラリ(-l) 静的ライブラリがで行く:その他/リンカ/ miscelanousファイルと

+0

ありがとうございました。しかし、そのヒントが私の問題にどのように役立つのでしょうか?もう少し詳しい情報を提供できますか? TiA – Christian