gpt4 book ai didi

opencv - 使用 CMake 时链接器找不到 OpenCV 库

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

我在/usr/local/lib 中安装了 OpenCV2.4.0 的副本

我的程序编译正确,但是当调用链接器时,它给出了如下错误:

/home/zhouw/moos-ivp-zhouw/trunk/src/pATRTest/mst.cpp:661: undefined reference to 'cv::_OutputArray::_OutputArray(cv::Mat const&)'
CMakeFiles/pATR.dir/mst.cpp.o:/home/zhouw/moos-ivp-zhouw/trunk/src/pATRTest/mst.cpp:675: more undefined references to `cv::_OutputArray::_OutputArray(cv::Mat const&)'
collect2: ld returned 1 exit status
make[2]: *** [../bin/pATR] Error 1
make[1]: *** [src/pATRTest/CMakeFiles/pATR.dir/all] Error 2
make: *** [all] Error 2

奇怪的是我的程序大量使用了 opencv,如果 CMake 找不到库,它应该提示更多的 undefined reference 而不是少数。

我尝试添加LINK_DIRECTORIES("/usr/local/lib") 在我的 cmake 文件中,但它没有帮助。/usr/local/lib 下还安装了另一个名为 POCO 的库。我的程序还链接到 POCO 库,但 CMake 似乎可以轻松找到它们。

如果我手动链接 -L/usr/local/lib,它会正确链接而不会出错。

CMakeLists.txt 看起来像这样

PROJECT(pATR)

#what files are needed?
SET(SRCS
spline.hpp
utils.hpp utils.cpp
mst.hpp mst.cpp
cluster.hpp cluster.cpp
target.hpp target.cpp
detector.hpp detector.cpp
classifier.hpp classifier.cpp
atr.hpp atr.cpp
MOOSAtr.h MOOSAtr.cpp
main.cpp
)

ADD_EXECUTABLE(pATR ${SRCS})

# indicate how to link
#LINK_DIRECTORIES("/usr/local/lib")
TARGET_LINK_LIBRARIES(pATR opencv_core opencv_highgui opencv_imgproc MOOS)

INSTALL(TARGETS
pATR
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
)

知道发生了什么事吗?非常感谢!

最佳答案

如果您有 CMake 2.8,我建议使用 find_package(OpenCV) 加载库。

http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html 有一个例子

CMake 文件:

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

关于opencv - 使用 CMake 时链接器找不到 OpenCV 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782432/

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