OpenCV3未定义引用cv :: _ InputArray :: _ InputArray(cv :: Mat const&)

时间:2015-12-03 23:22:31

标签: opencv cmake opencv3.0

我刚刚构建了OpenCV3,它运行得非常顺利。我做了一个小例子可执行文件,它构建并链接到新的OpenCV3罚款。我然后切换我的实际代码库指向新的OpenCV3,但我收到一些奇怪的链接器错误,如

undefined reference to cv::_InputArray::_InputArray(cv::Mat const&)

我正在使用CMake找到OpenCV

find_package(OpenCV 3 REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})

link_directories(${OpenCV_LIBRARY_DIRS})

add_executable(WriteImage WriteImage.cpp)
target_link_libraries(WriteImage ${OpenCV_LIBS})

我检查了这些变量,似乎设置正确。我还从一个新的构建树开始,以确保CMake在链接到OpenCV2时没有保存任何内容。有谁知道什么会导致这个问题链接?

链接器说问题出在这个函数中:

double GetMaxValue(cv::Mat& image)
{
    //Initialize m
    double minVal;
    double maxVal;
    cv::Point minLoc;
    cv::Point maxLoc;

    minMaxLoc(image, &minVal, &maxVal, &minLoc, &maxLoc );

    return maxVal;
}

1 个答案:

答案 0 :(得分:0)

似乎有些东西被添加到我的包含路径中,我想这是首先找到与库不兼容的标题(正确找到)。因此,即使OpenCV_INCLUDE_DIRS是正确的,最终的包含路径在其内容之前也有一些东西。