5

我有一个自编译的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 ..

一切看起来都很好。简单的例子就可以了。我的问题是,我想在 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++ Linker

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

有什么帮助吗?

4

2 回答 2

8

问题可能在于不正确的链接顺序和缺少 lib features2d。尝试

g++ -L/usr/local/lib -o "SURF_Example" ./example.o -lopencv_nonfree -lopencv_objdetect -lopencv_features2d -lopencv_imgproc -lopencv_highgui -lopencv_core  
于 2013-11-13T08:44:15.117 回答
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-config两次。

于 2020-01-08T04:03:43.513 回答