我刚刚花了很长时间让 openCV 在 Ubuntu 12.04 中正确链接,并认为我会分享我学到的知识以造福他人。
OpenCV 现在可以在 Ubuntu 存储库中作为
sudo apt-get install libopencv-dev
这很好,但我相信(如果我错了,请纠正我)这个版本的 opencv 对库有不同的命名约定。主要区别在于,在 C++ 中,包含行应为
#include "opencv2/opencv.hpp"
这将使您的代码编译为对象但不链接。另一个区别是静态库也已从libcv*重命名为libopencv*。例如,二进制文件现在可以位于
/usr/lib/libopencv_core.so
/usr/lib/libopencv_highgui.so
.
.
.
为了解决这个问题,我需要通过将编译器命令更改为
g++ main.cpp -lopencv_core -lopencv_highgui ...
或者在 CMake 中
target_link_libraries(main opencv_core opencv_highgui ...)
我希望这有帮助。如果有人比我了解更多,我很想知道这里发生了什么。
-麦克风