1

昨天我制作了一个“CMakeLists.txt”文件,其中包含以下内容。

cmake_minimum_required(VERSION 2.8)
project( HMirror )
find_package( OpenCV REQUIRED )
add_executable( HMirror HMirror.cpp )
target_link_libraries( HMirror ${OpenCV_LIBS} )

它工作得很好,我没有改变任何东西......(真的!!!!)

今天我想在我的代码中添加一些额外的功能,我在我的 Linux Shell 上得到了以下输出。

HMirror.cpp:(.text+0x56): undefined reference to `cv::imread(std::string const&, int)'
HMirror.cpp:(.text+0x191): undefined reference to `cv::namedWindow(std::string const&, int)'
HMirror.cpp:(.text+0x1f1): undefined reference to `cv::namedWindow(std::string const&, int)'
HMirror.cpp:(.text+0x268): undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
HMirror.cpp:(.text+0x2df): undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'

自昨天以来,我没有更改图书馆的目的地,也没有更改代码。所以我想知道为什么它似乎不再起作用。

4

1 回答 1

2

尝试明确编写要链接的库。在 Linux 上,这将是opencv_core, opencv_highgui, opencv_imgproc, 等等...

/usr/local/lib如果您从源代码编译库,则在从名称中减去 lib 前缀后,将在 中找到库名称。

于 2013-04-09T09:06:40.910 回答