c++ - cmake:静态链接到 opencv 库
问题描述
在 Ubuntu 20.04 上:
sudo apt install libopencv-dev
结果:
kwu@Dev-KWu:/usr$ find . -name "*opencv_imgproc*" -o -name "*opencv_core*"
./lib/x86_64-linux-gnu/libopencv_core.so
./lib/x86_64-linux-gnu/libopencv_core.so.4.2
./lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2.0
./lib/x86_64-linux-gnu/libopencv_imgproc.a
./lib/x86_64-linux-gnu/libopencv_core.a
./lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2
./lib/x86_64-linux-gnu/libopencv_imgproc.so
./lib/x86_64-linux-gnu/libopencv_core.so.4.2.0
CMakeLists.txt:
...
set(OpenCV_SHARED OFF) # found on internet, makes no difference to resulting ninja.build
set(OpenCV_STATIC ON) # found on internet, makes no difference to resulting ninja.build
find_package(OpenCV REQUIRED COMPONENTS imgproc core)
...
target_link_libraries(foo PRIVATE ${OpenCV_LIBS})
ninja.build 中的结果:
LINK_LIBRARIES = ... /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2.0 /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.2.0 ...
静态链接 OpenCV 的妙招是什么?
解决方案
推荐阅读
- java - 每次我从 HIbernate 检索一个实体然后丢弃时,Hibernate 是否会挂起任何资源
- laravel - laravel 分页器在 where 子句中不使用 LIKE
- android - 使用 google 登录创建 firebase 用户 .getCurrentUser() 返回 null
- python - 在灰度图像上使用自适应阈值的错误
- sqlite - 修剪旧记录后 SQLite 文件变大
- python - 使用 python 新手进行网页抓取
- javascript - 如何使对象的名称成为变量的值?
- c# - 防止来自 URL 的环境路由值在 ASP.NET 中自动添加到 Html.Action 和 Html.ActionLinks
- c# - Xamarin 表单管理闹钟
- powershell - 当它认为有多行时,如何让 PowerShell 将文件作为单行读取?