web-dev-qa-db-ja.com

pkg-config出力を使用してライブラリをQTプロジェクトにリンクする

これは初心者向けの質問です。 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
25
MVG
CONFIG += link_pkgconfig
PKGCONFIG += opencv

(私はこの回答を http://beaufour.dk/blog/2008/02/using-pkgconfig.html から受け取りました)

37
Ken Bloom

ケンの答えはうまくいきました。 + =の両側のスペースを最初に削除する必要がありました。

CONFIG+=link_pkgconfig PKGCONFIG+=opencv
11
Salida Software

Qtの新しいバージョンでは、パッケージが見つからないというエラーを回避するためにこれを行う必要があります。

QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
PKGCONFIG += protobuf #or whatever package here

Macでもこれを行う必要がありました。

mac {
  PKG_CONFIG = /usr/local/bin/pkg-config
}
5
SteveEng

Qmakeファイルでこのようなことを行う必要があります

LIBS += `pkg-config --libs opencv`

編集:うーん、Ken Bloomの答えはより移植性が高いかもしれませんが、文書化されていませんか?

4
nicomen

.proファイルに次の行を追加します。

INCLUDEPATH += `pkg-config --cflags opencv`
LIBS += `pkg-config --libs opencv`
3
RawMean