-2

我最近在 ubuntu 下安装了几年后的 Fedora 18。

在适当的更新之后,我下载并重新编译了我最喜欢的库,例如 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);

编译步骤看起来已经成功,但是当我尝试执行此代码时,我得到以下信息:

/home/jonny/Desktop/prog/MMSE_SD2/test_opencv-build-desktop-Qt_4_8_4_in_PATH_ System _Release/test_opencv:符号查找错误:/home/jonny/Desktop/prog/MMSE_SD2/test_opencv-build-desktop-Qt_4_8_4_in_PATH_System_Release / test_opencv:未定义符号:_ZN2cv12_OutputArrayD1Ev

我使用 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库但没有成功。

如果有人可以帮助我真的很感激。

提前致谢

强尼

4

1 回答 1

1

我的假设是您在系统中安装了旧版本的 OpenCV,并且您的程序运行时链接到了错误的库。

您可以通过调用轻松检查这一点ldd <binary>,这将列出您的二进制文件将链接到的库。如果它们不是您安装在 /usr/local/lib/ 中的那些,您可以通过设置 LD_LIBRARY_PATH 来解决问题。

于 2013-02-09T15:40:49.343 回答