制作找不到我的 .so.2.4.8 文件
Make doesn't find my .so.2.4.8 files
我正在尝试编译一个使用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
.
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- 如何从构建 libgpio.so 的生成文件构建libgpio.a
- 用于构建 cuda .so 文件(共享库)的生成文件
- 无法从 SO 文件调用 SO 文件的函数 - C++生成文件
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 C++ 的 .so 文件中包含库
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 为什么C++可执行文件在与较新的libstdc++.so链接时运行得更快?
- Google Colab 看不到 .so 文件
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 如何在 Linux 中从 .so 文件打开可执行文件?
- 如何在makefile中包含tensorflow c ++".so"文件?
- 缺少 .h 文件,尽管从库文件夹链接了 .so 文件
- 如何在 CMake 超级生成中查找 dll/so 文件
- 如何用.so文件linux打包所有需要的库
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- 如何使用 gnu c++ 程序获取共享对象文件(.so 文件)的体系结构
- EMF文件(.so)调试,符号找不到VTable错误
- 如何将c++库作为共享对象文件(.so)加载到Python中?