OpenCV 找不到库 [重复]

Posted

技术标签:

【中文标题】OpenCV 找不到库 [重复]【英文标题】:OpenCV cannot find libraries [duplicate] 【发布时间】:2015-07-01 11:34:31 【问题描述】:

我正在尝试在 OpenCV 中读取图像,如下所示:

#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>



using namespace cv;
using namespace std;




int main (int argv, char **argc)

    Mat image = imread("Foam_Image.jg", CV_LOAD_IMAGE_GRAYSCALE);

    return 0;

但我收到以下错误:

undefined reference to cv::imread(cv::String const&, int)

OpenCV 似乎找不到我包含的库,可能是因为我没有正确链接它们,或者可能缺少一些库。有谁知道如何查找丢失的库或如何链接 OpenCV 中的库?

【问题讨论】:

你的编译行是什么? 您使用的是哪个平台和编译器? 我使用嵌入在 OpenCV 中的 GNU GCC 编译器。不过,编译进展顺利。只有当我构建并运行它时,我才会收到此错误。 您需要添加适当的-L-l 开关才能链接OpenCV 库。 @Paul R 如何在 Windows 7 上执行此操作? 【参考方案1】:

如果您的操作系统是任何具有 CMake 的 UNIX,那么您最好编写一个 CMakelists.txt 文件,如下所示

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage $OpenCV_LIBS )

然后使用 cmake . make ./DisplayImage

执行程序。

您可以使用包管理器从官方存储库安装 CMake

如果您的操作系统是 Windows,请安装 CMake 并将编译器选项设置为 Visual Studio(您的版本)。如果尚未完成,还将 OpenCV 路径添加到您的系统路径。 更多说明: http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html

【讨论】:

建议仅使用另一种工具来解决此类基本问题并不是很有用 IMO 我使用的是 Windows 7。对不起,我没有提到这一点。 @Simon 我同意,但即使是 Windows,CMake 也能很好地为 Visual Studio 生成 sln 文件。并且不建议为每个项目一个一个地链接 dll。 @Giridhur 正确,CMake 是一个非常好的工具,但是在这种特殊情况下,它增加了另一个级别的复杂性,IMO 对 OP 理解此链接问题没有用处

以上是关于OpenCV 找不到库 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ld 链接器找不到 so 库

ld 链接器找不到 so 库

MATLAB + Mex + OpenCV:链接和编译正确,但在运行时找不到库

CMake - OpenCV - 找不到 -lDisplayImage

如何处理在源代码中找不到 OpenCV

使用 javacv 的异常“找不到依赖库”