我刚刚花了很长时间在Ubuntu 12.04中让openCV正确链接,我想分享一下我学到的东西,以使其他人受益。
现在,在Ubuntu存储库中可以获得OpenCV。
为了解决这个问题,我需要通过更改编译器命令来明确告诉链接器新的库名称。
或者在CMake中。
我希望这可以帮到你。如果有人比我知道更多的信息,我很想知道这里发生了什么。
-Mike
现在,在Ubuntu存储库中可以获得OpenCV。
sudo apt-get install libopencv-dev
这很棒,但我认为(如果我错了请纠正)这个版本的OpenCV对库的命名规则有所不同。主要区别在于,在C++中,包含行应该如下:
#include "opencv2/opencv.hpp"
这将使您的代码编译为对象,但不链接。另一个区别是静态库也已被重命名为libopencv*,不再是libcv*。例如,二进制文件现在可以位于以下位置
/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 ...)
我希望这可以帮到你。如果有人比我知道更多的信息,我很想知道这里发生了什么。
-Mike