openCV 2.4.7错误添加符号:命令行中缺少DSO

时间:2013-11-13 08:20:41

标签: c++ opencv linker

我遇到了自编编译opencv的问题...

XUbuntu 13.10 x64 gcc版本4.8.1

  

cmake -D WITH_TBB = ON -D BUILD_NEW_PYTHON_SUPPORT = ON -D WITH_V4L = ON -D   INSTALL_C_EXAMPLES = ON -D INSTALL_PYTHON_EXAMPLES = ON -D   BUILD_EXAMPLES = ON -D WITH_QT = ON -D WITH_OPENGL = ON -D WITH_OPENMP = ON ..

Everthing看起来很好。简单的例子将是有效的。 我的问题是,我想在xubuntu中使用nonfree(SURF)包。

现在我要编译这些示例 http://docs.opencv.org/doc/tutorials/features2d/feature_detection/feature_detection.html 并得到此错误(主题)

  

g ++ -I / usr / local / include / opencv -I / usr / local / include / opencv2 -O0 -g3   -Wall -c -fmessage-length = 0 -MMD -MP -MF“example.d”-MT“example.d”-o“example.o”“../ example.cpp”已完工的建筑物:../ example的.cpp

构建目标:SURF_Example 调用:GCC C ++链接器

  

g ++ -L / usr / local / lib -o“SURF_Example”./ example.o -lopencv_core   -lopencv_imgproc -lopencv_highgui -lopencv_objdetect -lopencv_nonfree

libopencv_features2d.so.2.4:添加符号时出错:命令行中缺少DSO

任何帮助?

2 个答案:

答案 0 :(得分:6)

问题可能在于错误的链接顺序和缺少的lib features2d。试试

g++ -L/usr/local/lib -o "SURF_Example" ./example.o -lopencv_nonfree -lopencv_objdetect -lopencv_features2d -lopencv_imgproc -lopencv_highgui -lopencv_core  

答案 1 :(得分:0)

自编译的OpenCV 3.2也有类似的问题:

/usr/local/lib/libopencv_imgcodecs.so:添加符号时出错:命令行缺少DSO

原来,我的编译器命令行也是错误的。正确的命令行变为:

g++ `pkg-config --cflags opencv` main.cpp `pkg-config --libs opencv`

请注意,它是 g ++ ,而不是 gcc ,并且编译器开关必须位于模块之前,而链接器开关必须位于模块之后,因此使用 pkg-配置两次。