python setup.py install error: opencv2/opencv.hpp: 没有那个文件或目录 ld: cannot find -lgsl CFAR

这是一篇求助贴,想问问各位大佬有没有遇到过如下问题:

代码来源:https://github.com/nasir6/py_cfar

代码是GITHUB上下载的源码py_cfar,里面有一个setup.py文件是用来安装cfar包,但是运行这个文件会进行以下报错

main.cpp:118:1: warning: missing initializer for member ‘PyModuleDef::m_slots’ [-Wmissing-field-initializers]
 };
 ^
main.cpp:118:1: warning: missing initializer for member ‘PyModuleDef::m_traverse’ [-Wmissing-field-initializers]
main.cpp:118:1: warning: missing initializer for member ‘PyModuleDef::m_clear’ [-Wmissing-field-initializers]
main.cpp:118:1: warning: missing initializer for member ‘PyModuleDef::m_free’ [-Wmissing-field-initializers]
main.cpp:27:1: warning: ‘PyObject* PyCfar_new(PyTypeObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
 PyCfar_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 ^
g++ -pthread -shared -B /home/abcabc/anaconda3/envs/Test-ENV/compiler_compat -L/home/abcabc/anaconda3/envs/Test-ENV/lib -Wl,-rpath=/home/abcabc/anaconda3/envs/Test-ENV/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.7/main.o -L/usr/local/lib/ -lopencv_core -lopencv_highgui -lopencv_video -lopencv_videoio -lgsl -lgslcblas -o build/lib.linux-x86_64-3.7/cfar.cpython-37m-x86_64-linux-gnu.so
/home/abcabc/anaconda3/envs/Test-ENV/compiler_compat/ld: cannot find -lopencv_videoio
/home/abcabc/anaconda3/envs/Test-ENV/compiler_compat/ld: cannot find -lgsl
/home/abcabc/anaconda3/envs/Test-ENV/compiler_compat/ld: cannot find -lgslcblas
collect2: error: ld returned 1 exit status
error: command 'g++' failed with exit status 1

参考帖子解决:https://stackoverflow.com/questions/47512182/answer/submit

发现运行完

 ld -lgslcblas --verbose

之后结果如下:


==================================================
试图打开 //usr/local/lib/x86_64-linux-gnu/libgslcblas.so 失败
试图打开 //usr/local/lib/x86_64-linux-gnu/libgslcblas.a 失败
试图打开 //lib/x86_64-linux-gnu/libgslcblas.so 失败
试图打开 //lib/x86_64-linux-gnu/libgslcblas.a 失败
试图打开 //usr/lib/x86_64-linux-gnu/libgslcblas.so 失败
试图打开 //usr/lib/x86_64-linux-gnu/libgslcblas.a 失败
试图打开 //usr/local/lib64/libgslcblas.so 失败
试图打开 //usr/local/lib64/libgslcblas.a 失败
试图打开 //lib64/libgslcblas.so 失败
试图打开 //lib64/libgslcblas.a 失败
试图打开 //usr/lib64/libgslcblas.so 失败
试图打开 //usr/lib64/libgslcblas.a 失败
试图打开 //usr/local/lib/libgslcblas.so 失败
试图打开 //usr/local/lib/libgslcblas.a 失败
试图打开 //lib/libgslcblas.so 失败
试图打开 //lib/libgslcblas.a 失败
试图打开 //usr/lib/libgslcblas.so 失败
试图打开 //usr/lib/libgslcblas.a 失败
试图打开 //usr/x86_64-linux-gnu/lib64/libgslcblas.so 失败
试图打开 //usr/x86_64-linux-gnu/lib64/libgslcblas.a 失败
试图打开 //usr/x86_64-linux-gnu/lib/libgslcblas.so 失败
试图打开 //usr/x86_64-linux-gnu/lib/libgslcblas.a 失败
ld: 找不到 -lgslcblas

其中没有success,没有办法按照帖子里面的步骤解决,网上找解决办法也没有遇到合适的

到这一步黔驴技穷,还请各位大佬指点迷津

这个错误提示表明在编译C++代码时,尝试包含OpenCV 4库中的opencv2/opencv.hpp文件,但是系统找不到指定的文件或路径。这可能是由于以下几个原因: 1. **路径问题**:OpenCV库可能没有正确安装到你的系统路径中,或者你试图包含的头文件所在的路径不正确。检查你的OpenCV安装路径,以及`#include`指令的路径是否指向了正确的目录。 2. **头文件版本**:如果你正在使用的是OpenCV 4,但编译器仍然在寻找OpenCV 3的头文件,那么你需要更新编译命令,确保它指向的是最新版本的头文件。 3. **预处理器定义**:在某些情况下,编译器可能需要特定的预处理器宏(如`OPENCV_VERSION`)来正确识别OpenCV库。确保你在编译前设置了这些定义。 4. **项目配置**:如果你在IDE中编译,检查项目设置是否正确配置了OpenCV库的路径和依赖。 为了解决这个问题,你可以按照以下步骤操作: - **确认路径**:检查`opencv4/opencv2/opencv.hpp`的确切位置,并确保`#include`指令中的路径正确。 - **更新编译命令**:如果头文件已移动,更新你的`#include`指令。 - **添加头文件路径**:在编译选项中添加OpenCV库的包含路径,特别是对于跨目录引用。 - **检查项目配置**:在IDE中,检查并调整项目的库和编译设置。 相关问题: 1. 如何在编译器中指定头文件搜索路径? 2. 如何在不同版本的OpenCV之间正确配置预处理器宏? 3. 如果我是在Linux上遇到这个问题,应该如何检查OpenCV的安装路径?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值