3

プロジェクトに動的構成パス (pkg-config から生成) を追加したいと考えています。(これは基本的に、boost などのサードパーティの依存関係のためのものであるため、ワークスペース インクルードは適切ではありません。また、ハードコードされ、すべての開発者が手動で変更する必要があるため、ファイルシステムにはどちらも含まれていません)

私はプロジェクトのプロパティを使用しています-> c++一般->パスとシンボル->インクルードタブ->追加...->ディレクトリパスの追加->変数ですが、既存の変数からしか選択できません。動的に生成された新しい変数を作成するにはどうすればよいですか?コマンドラインプログラムから?のようなpkg-config --cflags boost-1.43

これは、netbeans では簡単に実行できます。ビルドの追加オプションに逆引用符を付けて pkg-config コマンドラインを追加するだけで、ビルドのインクルードが解決され、理論的にはインデクサーを更新する必要があります (実を言うと、最後にインデクサーが pkg-config から正しく更新されていたときはオンでした) netbeans 6.8、6.9 および 6.9.1 では壊れています)

このStackOverflowの投稿を読みましたが、この特定のケースにどのように役立つかまだわかりません

$(shell pkg-config...) を使用して環境変数を生成できることをどこかで読みましたが、コマンドを配置する場所がわかりません

すぐに使える簡単なソリューションがない場合は、このブログ投稿のスクリプトを試してみます

ところで、私はEclipse Helios -cdt 7を使用しています

ありがとう!

4

5 に答える 5

3

以下で $(shell pkg-config --cflags your_libs) を使用できます。

Project properties->C/C++ Build->Settings->"Tools Settings" tab->**C Compiler**->Miscellaneous->Other Flags

あなたが使用することができます

$(shell pkg-config **--libs** your_libs) 

Project properties->C/C++ Build->Settings->"Tools Settings" tab->**C Linker**->Miscellaneous->Other Flags

リンカがリンクしない場合は、リンクするオブジェクトの後に pkg-config フラグが表示されていることを (ビルド コンソール ウィンドウなどで) 確認してください。プロパティ-> C / C ++ビルド->設定->「ツール設定」タブ-> Cリンカー->コマンドラインパターンでこれを行うことができます${FLAGS}。最後に移動します:

これから(たとえば):

${COMMAND} **${FLAGS}** ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS}**

これに:

${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS} ${FLAGS}**
于 2012-12-30T19:00:47.763 に答える
3

pkg-config のサポートがついに CDT に導入され、8 月に終了する予定です。

http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

于 2011-05-12T13:29:11.553 に答える
1

私がこれまでに見つけたのは、あなたができるということです

プロジェクト->プロパティ->c++ビルド->ビルド変数

文字列型の新しい変数を追加します。好きなように呼んでください:

UNITTEST_CPP_CXXFLAGS

次に、その値として設定します:$(shell pkg-config --cflags unittest-cpp)

プロジェクトのプロパティ->c++一般->パスとシンボルに移動します。言語c++を選択します。それ以外の場合は、デフォルトでアセンブリソースファイルになります。[追加]をクリックします。ディレクトリの追加パスで、[変数]をクリックします...(作成したばかりの変数を追加するため)

変数の名前(UNITTEST_CPP_CXXFLAGS)を入力し、Enterキーを押して[OK]を押します

再構築すると、シェルコマンドの結果が-Iオプションに置き換えられます(少なくともgnu gccツールチェーンの場合)。通常、pkg-config出力には1つ以上の-Iが含まれる可能性があるため、これは機能しません。c++ビルド->設定->ツール設定->gccc++コンパイラ->その他に移動しましょう。そこで、${UNITTEST_CPP_CXXFLAGS}を他のフラグに追加します。

これでインクルードが追加されますが、インデクサーにそれらのインクルードを参照させる見込みはありません。

于 2010-10-01T22:44:11.470 に答える