我遇到了自编编译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
任何帮助?
答案 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-配置两次。