在我的项目上运行CMake(实际上是rosmake)时,我收到一个错误。我已经安装了OpenCV,但我得到以下错误:
Linking CXX shared library ../lib/libCornerHelper.so
/usr/bin/ld: cannot find -lopencv_contrib
/usr/bin/ld: cannot find -lopencv_legacy
/usr/bin/ld: cannot find -lopencv_stitching
/usr/bin/ld: cannot find -lopencv_gpu
/usr/bin/ld: cannot find -lopencv_objdetect
/usr/bin/ld: cannot find -lopencv_calib3d
/usr/bin/ld: cannot find -lopencv_features2d
/usr/bin/ld: cannot find -lopencv_video
/usr/bin/ld: cannot find -lopencv_highgui
/usr/bin/ld: cannot find -lopencv_ml
/usr/bin/ld: cannot find -lopencv_imgproc
/usr/bin/ld: cannot find -lopencv_flann
/usr/bin/ld: cannot find -lopencv_core
collect2: ld returned 1 exit status
make[3]: *** [../lib/libCornerHelper.so] Error 1
有人知道怎么解决这个问题吗?
显然,他找不到opencv链接到你的项目。您是否将它安装在/usr或/usr/local以外的其他地方?
如果是,则需要将路径添加到LD_LIBRARY_PATH变量中,以此类推。当你运行这个程序时,你的系统显示了什么?
pkg-config --cflags --libs opencv
如果你得到这样的信息,那么你的系统是正常的。
-I/opt/opencv/include/opencv -I/opt/opencv/include -L/opt/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
但是如果你不这样做,你的系统无法找到它,cmake也不会找到它:
Package opencv was not found in the pkg-config search path. Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found
如果您在ROS中使用OpenCV,如果您在manifest.xml文件中声明了对opencv2的依赖,则应该自动选择适当的链接标志和路径。
如果你仍然有问题,我建议你搜索ROS答案,如果你没有找到任何东西,在那里问你的问题。这是官方的ROS支持论坛,可能会为您提供比StackOverflow更好的ROS特定问题的答案。