Opencv Linking CXX shared library ../../lib/libopencv_core.so

本文解决在64位Ubuntu下编译OpenCV时遇到的链接库错误和SystemError问题,通过修改C_FLAGS和CXX_FLAGS添加-O3-fPIC选项,并建议在本地目录而非虚拟机共享目录编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误信息:
[ 31%] Linking CXX shared library …/…/lib/libopencv_core.so
CMake Error: cmake_symlink_library: System Error: Operation not supported
CMake Error: cmake_symlink_library: System Error: Operation not supported
modules/core/CMakeFiles/opencv_core.dir/build.make:2307: recipe for target ‘lib/libopencv_core.so.3.4.1’ failed
make[2]: *** [lib/libopencv_core.so.3.4.1] Error 1
make[2]: *** Deleting file ‘lib/libopencv_core.so.3.4.1’
CMakeFiles/Makefile2:1521: recipe for target ‘modules/core/CMakeFiles/opencv_core.dir/all’ failed
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:160: recipe for target ‘all’ failed
make: *** [all] Error 2

版本问题(64位Ubuntu)

解决:

进入opencv目录下的3rdparty的对应目录CMakeFiles/ *.dir下(所有的,是3rdparty目录下所有的),打开flags.make,在C_FLAGS = 后添加-O3 -fPIC,用来支持在64位机上编译
在这里插入图片描述

如…/3rdparty/zlib/CMakeFiles/zlib.dir/flags.make

修改C_FLAGS = -W -Wall 为 C_FLAGS = -O3 -fPIC -W -Wall

修改CXX_FLAGS = -W -Wall 为 C_FLAGS = -O3 -fPIC -W -Wall

在这里插入图片描述修改后重新编译就没问题了!!!

注:如果出现System Error: Operation not supported

因使用vmware,在windows机器的共享目录中编译,可能也是会无法创建链接,就会提示上面的错误。

解决办法是,把源码复制到linux的本地目录中,比如/home等,在本地目录中编译就不会有这个问题。

文章参考:https://blog.csdn.net/chaorenlxl/article/details/24937599

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值