在QT5上配置opencv3,运⾏第⼀个程序时出现以下错误,解决⽅法也po出: 错误⼀:
-1: error: mainwindow.o: undefined reference to symbol '_ZN2cv6imreadERKNS_6StringEi'
/usr/local/lib/libopencv_imgcodecs.so.3.4:-1: error: error adding symbols: DSO missing from command line
-1: error: collect2: error: ld returned 1 exit status
解决⽅法:从错误提⽰⾥可以看出,需要链接libopencv_imgcodecs.so,这个应该是opencv3和opencv2的区别,导致程序编译链接出错。(因为我⽤的例程是基于opencv2的)添加到库后,如下 INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv \
/usr/local/include/opencv2
转接口
LIBS += /usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_core.so \
/usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_imgcodecs.so
错误⼆:
-1error: 'class QString' has no member named 'toAscii'(class QChar)
解决⽅法:在Qt4中QString类和QChar类都有toAscii()⽤于转为char(ASCii码),但是在Qt5中没有,可以⽤函数char toLatin1() const替代原函数。(我差点就⾃⼰动⼿写了) 错误三:
-1: error: file not recognized: File truncated
解决⽅法:Build -> rebuild All
这个错误有可能出现在上⼀次构建被中断之后,并且没有完全⽣成⽬标⽂件。(出现这个神奇的错误之前我电脑正好构建到⼀半就死机了)