使用eclipse和ubuntu 13.04构建opencv2.4.5应用程序时出错
error while building opencv 2.4.5 application with eclipse and ubuntu 13.04
这可能是一个棘手的问题,但我已经被困了一段时间,我很感激任何帮助。。。
我已经能够安装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文件
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/local/lib/pkgconfig导出PKG_CONFIG_PATH
到/etc/bash.bashc文件的末尾。
提前感谢您的帮助。
您的链接步骤错误地指定了库。如果库是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
您可以在此处阅读有关链接选项的更多信息。
尽管文件名类似/usr/local/lib文件夹下的liblibopencv_core.so,但在GCC C++链接器库中只提到opencv_core。对要添加到库中的其他文件执行相同操作。
- 使用 Visual Studio 2019 构建 Hello World wxwidgets 应用程序时出错
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- 从 ParaView 构建自定义 Qt 应用程序示例时出错
- 将 Dr. Memory 与 Visual Studio 项目配合使用时出错:缺少应用程序所需的库
- 尝试使用共享库部署QT应用程序时出错
- 编译 CPP 应用程序时出错。 "error: 'posix_memalign' was not declared in this scope"
- std::stoul 在带有 NDK r13b 的 Android 版 Qt 应用程序上出错
- 编译向导生成的MFC应用程序时出错;缺少CDocument声明
- 尝试在Qt中运行应用程序时出错
- 编译C 应用程序(Apache Thrift)时出错
- 尝试使用 boost::interprocess::managed_shared_memory::构造<T>编译应用程序时出错
- 在另一个线程正在运行的情况下退出应用程序时出错
- 使用Visual Studio构建Freetype应用程序时出错
- 获取应用程序的内存使用情况时出错
- CMake:运行链接命令时出错:%1不是有效的Win32应用程序
- 使用 Unity 在 iOS 应用程序上发送电子邮件时出错
- 编译简单的应用程序出错
- 在树莓派上编译c++ opencv应用程序出错
- 链接基于Qt的应用程序出错
- Qt LNK2019 基本 Qt5 应用程序出错