CMake链接路径

CMake Linking Path

本文关键字:路径 链接 CMake      更新时间:2023-10-16

我正在尝试将一个程序链接到OpenCV库,这些库位于:/usr/local/lib

因此,在CMakeLists.txt中,我放入:

TARGET_LINK_LIBRARIES(myprogram 
    opencv_core 
    opencv_imgproc
    opencv_highgui
    opencv_imgproc
    opencv_objdetect
)

建筑继续进行,但如果我这样做:

ldd myprogram

我得到:

...
libopencv_core.so.2.4 => not found
libopencv_imgproc.so.2.4 => not found
libopencv_highgui.so.2.4 => not found
libopencv_objdetect.so.2.4 => not found

因此,为了能够运行它,我必须每次将/usr/local/lib添加到$LD_LIBRARY_PATH

我做错了什么?

更新

我已经将TARGET_LINK_LIBRARIES配置替换为以下配置:

TARGET_LINK_LIBRARIES(myprogram ${OpenCV_LIBS})

现在它正在正确地链接库。。但是他们所有人!

确保环境变量设置正确,然后在CMakeList文件中使用这些行。

FIND_PACKAGE( OpenCV REQUIRED )
TARGET_LINK_LIBRARIES( myProject ${OpenCV_LIBS} )

您需要配置您的动态库加载程序以包含这些目录。添加/etc/ld.so.conf文件的路径或在/etc/ld.so.conf.d/目录中创建.conf文件