这可能是一个noob问题,但我已经被困了一段时间,我感谢任何帮助...
我已经能够安装opencv并使用终端运行示例应用程序而没有任何问题但是我想使用eclipse轻松管理我的项目......
我已按照此[link]中opencv教程的说明进行操作 http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html
我遵循了一切,但我仍然遇到以下错误
/usr/bin/ld: cannot find -llibopencv_calib3d
/usr/bin/ld: cannot find -llibopencv_contrib
/usr/bin/ld: cannot find -llibopencv_core
/usr/bin/ld: cannot find -llibopencv_features2d
/usr/bin/ld: cannot find -llibopencv_flann
/usr/bin/ld: cannot find -llibopencv_gpu
/usr/bin/ld: cannot find -llibopencv_highgui
/usr/bin/ld: cannot find -llibopencv_imgproc
/usr/bin/ld: cannot find -llibopencv_legacy
/usr/bin/ld: cannot find -llibopencv_ml
/usr/bin/ld: cannot find -llibopencv_nonfree
/usr/bin/ld: cannot find -llibopencv_objdetect
/usr/bin/ld: cannot find -llibopencv_photo
/usr/bin/ld: cannot find -llibopencv_stitching
/usr/bin/ld: cannot find -llibopencv_superres
/usr/bin/ld: cannot find -llibopencv_ts
/usr/bin/ld: cannot find -llibopencv_video
/usr/bin/ld: cannot find -llibopencv_videostab
collect2: error: ld returned 1 exit status
make: *** [Test_OpenCV01] Error 1
我在步骤和教程之间找到的唯一区别是: 当我运行命令时:
pkg-config --libs opencv
这是我的输出
/usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.so /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so
所以库名有点不同所以我使用的是我的名字。
从eclipse自动执行的命令行是
g++ -L/usr/local/lib/ -o "Test_OpenCV01" ./src/main.o -llibopencv_calib3d -llibopencv_contrib -llibopencv_core -llibopencv_features2d -llibopencv_flann -llibopencv_gpu -llibopencv_highgui -llibopencv_imgproc -llibopencv_legacy -llibopencv_ml -llibopencv_nonfree -llibopencv_objdetect -llibopencv_photo -llibopencv_stitching -llibopencv_superres -llibopencv_ts -llibopencv_video -llibopencv_videostab
它明确指出库路径是/ usr / local / lib /这是共享库所在的位置但是在错误中它表示它找不到/ usr / bin / ld中的lib文件
P.S。 我试过了两个
1)配置OpenCV以使用共享库:
sudo gedit /etc/ld.so.conf.d/opencv.conf
并在文件末尾添加以下行
/ usr / local / lib保存后运行sudo ldconfig。
2)运行命令
export LD_LIBRARY_PATH = / usr / local / lib
我还添加了
PKG_CONFIG_PATH = $ PKG_CONFIG_PATH:在/ usr /本地/ LIB / pkgconfig 导出PKG_CONFIG_PATH
到/etc/bash.bashrc文件的末尾。
感谢您提前帮助。
答案 0 :(得分:1)
您的链接步骤错误地指定了库。如果库是libfoo.so
,那么您需要说-lfoo
。
替换
g++ -L/usr/local/lib/ -o "Test_OpenCV01" ./src/main.o -llibopencv_calib3d -llibopencv_contrib -llibopencv_core -llibopencv_features2d -llibopencv_flann -llibopencv_gpu -llibopencv_highgui -llibopencv_imgproc -llibopencv_legacy -llibopencv_ml -llibopencv_nonfree -llibopencv_objdetect -llibopencv_photo -llibopencv_stitching -llibopencv_superres -llibopencv_ts -llibopencv_video -llibopencv_videostab
与
g++ -L/usr/local/lib/ -o "Test_OpenCV01" ./src/main.o -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab
您可以阅读有关关键字here的详细信息。
答案 1 :(得分:0)
即使文件名与/ usr / local / lib文件夹下的liblibopencv_core.so相似,但在GCC C ++链接器库中只提及 opencv_core 。对您在库中添加的其他文件执行相同的操作。