当前位置: 技术问答>linux和unix
Linux下Qt加载OpenCV静态链接库的问题,弄了好几天了还不会,求大神帮忙!
来源: 互联网 发布时间:2017-03-05
本文导语: Opencv编译好了动态链接库和静态链接库。用Qt加载动态链接库的时候能正常运行,可是换成加载静态链接库的时候就出现一大堆undefined reference的错误: /z-plan/imagepro/comfunction.o:: In function `comfunction::qimageToipl()': /z-plan...
Opencv编译好了动态链接库和静态链接库。用Qt加载动态链接库的时候能正常运行,可是换成加载静态链接库的时候就出现一大堆undefined reference的错误:
/z-plan/imagepro/comfunction.o:: In function `comfunction::qimageToipl()':
/z-plan/imagepro/comfunction.cpp:: error: undefined reference to `cvCreateImageHeader'
/z-plan/imagepro/comfunction.o:: In function `comfunction::loadImage(QString&)':
/z-plan/imagepro/comfunction.cpp:: error: undefined reference to `cvCreateImageHeader'
/z-plan/imagepro/../../usr/local/local/lib//libcv.a(cvcolor.o):: In function `cvCvtColor':
/opencv-1.0.0/cv/src/cvcolor.cpp:2251: error: undefined reference to `cvGetMat'
/opencv-1.0.0/cv/src/cvcolor.cpp:2255: error: undefined reference to `cvError'
一共有两百多个这样的错误。请问各位大神这个问题如何破?
系统是CentOS5.3,qt-4.7. OpenCV-1.0.0 qt用的是静态编译,OpenCV安装路径下的lib文件夹下有.so和.a的链接库文件。静态编译应该没有问题,我在没装Qt的机器上能运行静态编译出来的程序。
/z-plan/imagepro/comfunction.o:: In function `comfunction::qimageToipl()':
/z-plan/imagepro/comfunction.cpp:: error: undefined reference to `cvCreateImageHeader'
/z-plan/imagepro/comfunction.o:: In function `comfunction::loadImage(QString&)':
/z-plan/imagepro/comfunction.cpp:: error: undefined reference to `cvCreateImageHeader'
/z-plan/imagepro/../../usr/local/local/lib//libcv.a(cvcolor.o):: In function `cvCvtColor':
/opencv-1.0.0/cv/src/cvcolor.cpp:2251: error: undefined reference to `cvGetMat'
/opencv-1.0.0/cv/src/cvcolor.cpp:2255: error: undefined reference to `cvError'
一共有两百多个这样的错误。请问各位大神这个问题如何破?
系统是CentOS5.3,qt-4.7. OpenCV-1.0.0 qt用的是静态编译,OpenCV安装路径下的lib文件夹下有.so和.a的链接库文件。静态编译应该没有问题,我在没装Qt的机器上能运行静态编译出来的程序。
|
注意静态链接是的命令行次序问题,一般:
gcc -o test test.o -L. -static -lxxx
gcc -o test test.o -L. -static -lxxx
|
就是这样的,引用头文件的顺序 也有讲究。