gpt4 book ai didi

gcc - 在 Ubuntu 12.04 中编译和链接 OpenCV

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:51 25 4
gpt4 key购买 nike

我花了令人沮丧的很长时间让 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 ...)

希望对您有所帮助。如果有人比我更了解,我很想知道这里发生了什么。

-迈克

最佳答案

就我个人而言,我正在使用“pkg-config”来获取编译标志。

g++ `pkg-config --cflags opencv` main.c `pkg-config --libs opencv` -o main

主要示例:

#include <stdio.h>
#include <cv.h>

int main(void)
{
printf("%s\r\n", CV_VERSION);
printf("%u.%u.%u\r\n", CV_MAJOR_VERSION, CV_MINOR_VERSION, CV_SUBMINOR_VERSION);
}

关于gcc - 在 Ubuntu 12.04 中编译和链接 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com