2

厄介な問題があります。プロジェクトで pkg-config を使用しています。それはうまくいきましたが、今はそうではありません(変更されたことを知りません)。Eclipse内から次の行にリンクすると:

g++ `pkg-config --libs opencv` -o"RawConverterTgi"  ./main.o

エラーが発生します:

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

しかし、私が走るとき

pkg-config --libs opencv

私が得るコンソールで

-L/usr/local/opencv2.3.1/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

これは私が期待するものです

Eclipse が生成した makefile を使用してコンソールからコンパイル/リンクすると、正常に動作します。

Eclipse 内で $PKG_CONFIG_PATH を設定して opencv.pc ファイルの場所を指定すると、機能します (これは $PKG_SEARCH_PATH に追加することによって行われます)。したがって、何らかの理由で、Eclipse から呼び出された場合、pkg-config はデフォルトの /usr/lib/pkgconfig ディレクトリを検索しませんが、コマンド ラインから呼び出された場合は検索します。

pkg-configがEclipseから呼び出されたときにもデフォルトのディレクトリを検索するように、誰かがこれを修正するのを手伝ってくれますか? (デフォルトのディレクトリを $PKG_SEARCH_PATH に追加することは解決策ですが、これは必要または正しい方法ではないようです)

私のセットアップは次のとおりです

エクリプスヘリオス

CDT 7.0

pkg-config バージョン 0.25

4

1 に答える 1

3

私は自分の問題の解決策を見つけました。

理由はわかりませんが、Eclipse Heliosでは、Eclipseが$PKG_CONFIG_LIBDIRという環境変数を自動的に定義しているようです。この変数が存在する場合、pkg-configのデフォルトの検索パスはこの変数にあるものに変更されます。解決策は、単にこの変数の定義を解除することです。

Eclipseから次の場所に移動します。

プロジェクトのプロパティ->C/C++ビルド->環境

変数の設定を解除するには

于 2011-10-29T11:09:05.870 に答える