c++ - 使用 eclipse 和 ubuntu 13.04 构建 opencv 2.4.5 应用程序时出错

标签 c++ linux eclipse opencv eclipse-cdt

这可能是一个菜鸟问题,但我已经被困了一段时间,感谢任何帮助...

我已经能够安装 opencv 并使用终端运行示例应用程序而没有任何问题,但是我想使用 eclipse 轻松管理我的项目...

我已按照此 [链接] 中 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 文件

附注 我都试过了

1)配置 OpenCV 以使用共享库:

sudo gedit /etc/ld.so.conf.d/opencv.conf

并在文件末尾添加以下行

/usr/local/lib the running sudo ldconfig after saving.

2)运行命令

export LD_LIBRARY_PATH=/usr/local/lib

我也加了

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

到/etc/bash.bashrc 文件的末尾。

感谢您的帮助。

最佳答案

您的链接步骤指定的库不正确。如果库是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 .

关于c++ - 使用 eclipse 和 ubuntu 13.04 构建 opencv 2.4.5 应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300251/

相关文章:

c++ - 关于类成员函数指针的sizeof

c++ - 带链表的哈希表,重复节点仍在保存(C++)

c++ - 使用 include 定义枚举

java - 在 Tycho 项目中为非 OSGi JUnit 测试添加仅测试依赖项

c++ - 表达模板化负数字文字的首选方式

C - 帮助打印返回的结构的成员

java - 无法从 Java 中的 COM 端口读取串行数据

mysql - 更改mysql数据库的位置

java - Android、Eclipse 和 SVN - 源文件夹命名如何影响传输?

由 Tomcat/Eclipse/Tapestry 生成的 Javascript 文件,会因大量请求和大量解析而减慢网站速度。如何缩小/优化它?