0

OpenCV haartraining の瀬尾直俊チュートリアルに従っています。以前に生成された *.vec ファイルを 1 つにマージするスクリプトをコンパイルしようとしています。

私の作業環境は Windows 7 x64 と Cygwin です

コードを実行すると:

$ g++ 'pkg-config --libs --cflags opencv' -I. -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp

エラーが発生します:

 $ g++: error: pkg-config --libs --cflags opencv: No such file or directory

ファイル mergevec.cpp が、コードを実行するディレクトリにコピーされていることに注意してください。

誰かが私の問題を解決してくれることを願っています。

ありがとう

4

1 に答える 1

0

一重引用符ではなく、バッククォートを使用する必要があります。

これ:

g++ 'pkg-config --libs --cflags opencv' -I. -o mergevec \
    mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp \
    cvhaarclassifier.cpp cvhaartraining.cpp

'pkg-config --libs --cflags opencv'リテラル文字列引数 (引用符なし) としてg++コマンドに渡します。これ:

g++ `pkg-config --libs --cflags opencv` -I. -o mergevec \
    mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp \
    cvhaarclassifier.cpp cvhaartraining.cpp

コマンドpkg-config --libs --cflags opencvを実行し、その出力を 1 つまたは複数の引数としてに渡しg++ます。これを次のように書くこともできます。

g++ $(pkg-config --libs --cflags opencv) -I. -o mergevec \
    mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp \
    cvhaarclassifier.cpp cvhaartraining.cpp

シェルがサポートしている場合 (csh、tcsh、および古いバージョンの sh はサポートしていません。他のほとんどの最新のシェルはサポートしています)。

使用しているチュートリアルでそのコマンドが一重引用符で囲まれている場合は、作成者に知らせる必要があります。

于 2013-08-04T21:55:06.190 に答える