【问题标题】:Compiling and Linking OpenCV in Ubuntu 12.04在 Ubuntu 12.04 中编译和链接 OpenCV
【发布时间】:2012-12-16 18:12:59
【问题描述】:

我刚刚花了很长时间让 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 ...)

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

-迈克

【问题讨论】:

  • 你知道如何在 Ubuntu 上的 eclipse 上做同样的事情吗?我在 Ubuntu 12.04 上使用 Eclipse 3.7 ..

标签: gcc ubuntu opencv


【解决方案1】:

就个人而言,我使用“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);
}

【讨论】:

    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多