これは初心者向けの質問です。 OpenCVライブラリをQTプロジェクトに追加しようとしています。
この質問 リンクフラグは
pkg-config --libs opencv
コマンドラインの出力をプロジェクトファイルに貼り付ける場合:
LIBS += -L/usr/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore
その後、すべてが正常にコンパイルされますが、これは現在移植できません。コマンドの出力を単純に参照するにはどうすればよいですか?
更新:Ken Bloomの提案を試しましたが、コンパイルされません。実際に生成されるコンパイラコマンドは次のとおりです。
# How it should be, at least on my machine
g++ -o QOpenCVTest main.o qopencvtest.o moc_qopencvtest.o -L/usr/lib -L/usr/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore -lQtGui -lQtCore -lpthread
# with CONFIG and PKGCONFIG
g++ -o QOpenCVTest main.o qopencvtest.o moc_qopencvtest.o -L/usr/lib -lQtGui -lQtCore -lpthread
CONFIG += link_pkgconfig
PKGCONFIG += opencv
(私はこの回答を http://beaufour.dk/blog/2008/02/using-pkgconfig.html から受け取りました)
ケンの答えはうまくいきました。 + =の両側のスペースを最初に削除する必要がありました。
CONFIG+=link_pkgconfig PKGCONFIG+=opencv
Qtの新しいバージョンでは、パッケージが見つからないというエラーを回避するためにこれを行う必要があります。
QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
PKGCONFIG += protobuf #or whatever package here
Macでもこれを行う必要がありました。
mac {
PKG_CONFIG = /usr/local/bin/pkg-config
}
Qmakeファイルでこのようなことを行う必要があります
LIBS += `pkg-config --libs opencv`
編集:うーん、Ken Bloomの答えはより移植性が高いかもしれませんが、文書化されていませんか?
.proファイルに次の行を追加します。
INCLUDEPATH += `pkg-config --cflags opencv`
LIBS += `pkg-config --libs opencv`