未定义的符号 OutputArray opencv fedora
Posted
技术标签:
【中文标题】未定义的符号 OutputArray opencv fedora【英文标题】:undefined symbol OutputArray opencv fedora 【发布时间】:2013-02-09 12:22:31 【问题描述】:我最近在 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_系统_Release/test_opencv: 符号查找错误: /home/jonny/Desktop/prog/MMSE_SD2/test_opencv-build-desktop-Qt_4_8_4_in_PATH_系统_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库都没有成功。
如果有人可以帮助我真的很感激。
提前致谢
强尼
【问题讨论】:
你是否将bin文件路径添加到环境变量中? 【参考方案1】:我的假设是您在系统中安装了旧版本的 OpenCV,并且您的程序运行时链接到了错误的库。
您可以通过调用ldd <binary>
轻松检查这一点,它将列出您的二进制文件将链接到的库。如果它们不是您在 /usr/local/lib/ 中安装的,您可以通过设置 LD_LIBRARY_PATH 来解决问题。
【讨论】:
抱歉这么久了。我已经检查过了,看起来没问题。例如 -lopencv_core 路径是:libopencv_core.so.2.4 => /lib64/libopencv_core.so.2.4 也许如果安装一个降级版本,并编译使其成为升级等安装,那可能没问题。以上是关于未定义的符号 OutputArray opencv fedora的主要内容,如果未能解决你的问题,请参考以下文章
为啥 OPENCV 中有这么多函数使用 InputArray 和 OutputArray 作为函数参数?
错误:未定义符号:gzclose opencv emscripten
带有 Python OpenCV 的 ImportError(未定义符号)