我想这是一个链接器错误,但我花了很多时间并且找不到合适的答案。我有一个OpenCV C ++程序,当我尝试编译样式cv::Mat newMatObject;
的某些内容时,它会给我一个错误/usr/local/lib/libopencv_core.a(persistence.cpp.o): undefined reference to symbol 'gzclose'
。
.pro文件包含以下行:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = QtTest
TEMPLATE = app
INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lz -ltbb -ltiff
SOURCES += main.cpp\
qttest.cpp
HEADERS += qttest.h
FORMS += qttest.ui
我遗忘/做错了什么?
我使用OpenCV 2.4.9正常运行程序,没有其他更改。我决定继续使用2.4.13,因为扩展的gui在2.4.9上没有用。我从official website下载了OpenCV 2.4.13,并将其与this script一起安装(除了手动制作的wget和unzip),最初没有autoremove
以前的库,但我在问题出现后再次重新运行上一个脚本,以确保正确安装。
运行
g++ -o opencvtest opencvtest.cpp `pkg-config opencv --cflags --libs`
使用类似的代码行提供所需的结果而没有问题。
答案 0 :(得分:0)
将-lz
添加到LIBS
:
LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lz