这是一个新手问题。我正在尝试将OpenCV库添加到QT项目中。
This question表示链接标志由
给出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
答案 0 :(得分:33)
CONFIG += link_pkgconfig
PKGCONFIG += opencv
(我从http://beaufour.dk/blog/2008/02/using-pkgconfig.html获得了这个答案)
答案 1 :(得分:10)
Ken的回答很有效。我只需要删除+ = first。
两侧的空格CONFIG+=link_pkgconfig PKGCONFIG+=opencv
答案 2 :(得分:4)
你的qmake文件中应该这样做
LIBS += `pkg-config --libs opencv`
编辑:嗯,Ken Bloom的回答可能更容易,但是没有记录?
答案 3 :(得分:4)
在较新版本的Qt中,需要这样做以避免找不到包错误:
QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
PKGCONFIG += protobuf #or whatever package here
还必须为Mac执行此操作:
mac {
PKG_CONFIG = /usr/local/bin/pkg-config
}
答案 4 :(得分:3)
将以下行添加到.pro文件中:
INCLUDEPATH += `pkg-config --cflags opencv`
LIBS += `pkg-config --libs opencv`