制作找不到我的 .so.2.4.8 文件

Make doesn't find my .so.2.4.8 files

本文关键字:文件 so 找不到 我的      更新时间:2023-10-16

我正在尝试编译一个使用OpenCV的C++程序。我的CMakeLists.txt:

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

但是,在运行make时,我收到以下错误:

make[2]: *** No rule to make target `/path/to/folder/opencv/lib/libopencv_contrib.so', needed by `main'.  Stop.
原因很明显:.so文件以.so.2.4.8

(其中2.4.8是OpenCV版本)而不是.so文件存在,所以make找不到它们。如何告诉 cmake 生成使用 .so.2.4.8 文件而不是 .so 文件的生成文件?

通常,您链接到一个不受版本控制的库,该库是指向受版本控制的库的符号链接。

换句话说,你需要一个符号链接(通常由-devel包与头文件一起安装):

.../libopencv_contrib.so -> .../libopencv_contrib.so.2.4.8

另一种方法是将其链接为 -l:libopencv_contrib.so.2.4.8 而不是 -lopencv_contrib .