使用pkg-config输出将库链接到QT项目

时间:2010-08-19 00:00:14

标签: c++ qt qmake

这是一个新手问题。我正在尝试将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

5 个答案:

答案 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`