C++ 未定义符号输出阵列opencv fedora
在ubuntu下工作了几年后,我最近安装了Fedora18 在适当的更新之后,我下载并重新编译我最喜欢的库,如Opencv和PCL 为了检查是否一切正常,我尝试编译以下代码:C++ 未定义符号输出阵列opencv fedora,c++,opencv,fedora,undefined-symbol,C++,Opencv,Fedora,Undefined Symbol,在ubuntu下工作了几年后,我最近安装了Fedora18 在适当的更新之后,我下载并重新编译我最喜欢的库,如Opencv和PCL 为了检查是否一切正常,我尝试编译以下代码: cv::Mat im = cv::imread("023.JPG"); cv::resize(im.clone(),im,cv::Size(600,800)); cv::imshow("default",im); cv::waitkey(0); 编译步骤看起来已经成功,但当我尝试执行此代码时,我得到了以下结果: /
cv::Mat im = cv::imread("023.JPG");
cv::resize(im.clone(),im,cv::Size(600,800));
cv::imshow("default",im);
cv::waitkey(0);
编译步骤看起来已经成功,但当我尝试执行此代码时,我得到了以下结果:
/home/jonny/Desktop/prog/MMSE\u SD2/test\u opencv-build-Desktop-Qt\u 4\u 8\u 4\u in\u PATH\u System\u Release/test\u opencv:
符号查找错误:
/home/jonny/Desktop/prog/MMSE\u SD2/test\u opencv-build-Desktop-Qt\u 4\u 8\u 4\u in\u PATH\u System\u Release/test\u opencv:
未定义的符号:_ZN2cv12_outputarayd1ev
我使用qtcreator作为IDE
我的.pro文件如下所示:
INCLUDEPATH +=/usr/local/include/opencv-2.4.9
LIBS += -lopencv_core \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_calib3d \
-lopencv_contrib \
-lopencv_features2d \
-lopencv_flann \
-lopencv_legacy \
-lopencv_ml \
-lopencv_objdetect \
-lopencv_video
SOURCES += \
main.cpp
我重新编译了三次opencv库,但没有成功
如果有人能帮忙,我真的很感激
提前谢谢
Jonny我的假设是系统中安装了较旧版本的OpenCV,并且您的程序在运行时链接到了错误的库
您可以通过调用
ldd
轻松地检查这一点,它将列出二进制文件将链接到的库。如果它们不是您在/usr/local/lib/中安装的,您可以通过设置LD_LIBRARY_PATH来解决此问题。是否已将bin文件路径添加到环境变量中?抱歉,时间太长了。我已经检查过了,看起来还可以。例如,-lopencv_core路径是:libopencv_core.so.2.4=>/lib64/libopencv_core.so.2.4如果安装降级版本,并进行编译以使其成为升级等安装,则可以。