判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库
判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库
TLDR
只考虑windows下opencv预编译包的情况。
对于opencv2.4.x系列,cmake时指定
-DOpenCV_STATIC=OFF则为使用动态共享库,不指定或者指定-DOpenCV_STATIC=ON则为使用静态库。对于opencv3系列,我用的不多。opencv310看起来是只有动态库。
find(OpenCV)后,打印${OpenCV_LIB_PATH}和${OpenCV_SHARED}来查看OpenCV库目录、是否为共享库。
静态库:使用的是staticlib目录
OpenCV_LIB_PATH: D:/lib/opencv_249/build/x64/vc12/staticlib
OpenCV_SHARED: OFF
动态库:使用的是lib目录
OpenCV_LIB_PATH: D:/lib/opencv_249/build/x64/vc12/lib
OpenCV_SHARED: ON
完整的找包写法:
find_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs)
if(NOT OpenCV_FOUND) # if not OpenCV 3.x, then imgcodecs are not found
find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)
endif()
message(STATUS "OpenCV library status:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
message(STATUS " OpenCV_SHARED: ${OpenCV_SHARED}") # important
举例:windows上基于CMake编译Caffe,设定OpenCV
1)下载
caffe windows分支源码。https://github.com/BVLC/caffe ,选择windows分支下载。或者git操作。
caffe的预编译的依赖包。我放到了D:/lib/caffe_windows_deps/download/libraries_v120_x64_py27_1.1.0.tar.bz2。等下调用cmake的时候会自动解压到D:/lib/caffe_windows_deps/libraries_v120_x64_py27_1.1.0。
2)第一种编译方式:使用官方依赖包编译caffe
caffe-windows根目录下编写compile.bat脚本并执行:
set BUILD_DIR=build-vs2013
if exist %BUILD_DIR% rd /s /q %BUILD_DIR%
md %BUILD_DIR%
cd %BUILD_DIR%
set DEP_ROOT=F:/zhangzhuo/lib/caffe_windows_deps
cmake -G "Visual Studio 12 2013 Win64" ^
-DCAFFE_DEPENDENCIES_ROOT_DIR=%DEP_ROOT% ^
-DCPU_ONLY=ON ^
-DBLAS=Open ^
..
cd ..
3)第二种编译方式:手工指定opencv路径、是否为动态共享库,编译caffe
opencv249windows pack同时提供动态共享库和静态库,默认静态库。编译caffe需要共享库,需要手动开启:OpenCV_STATIC=OFF。
set BUILD_DIR=build-vs2013-opencv249
if exist %BUILD_DIR% rd /s /q %BUILD_DIR%
md %BUILD_DIR%
cd %BUILD_DIR%
set DEP_ROOT=D:/lib/caffe_windows_deps
set OpenCV_DIR=D:/lib/opencv_249/build
cmake -G "Visual Studio 12 2013 Win64" ^
-DCAFFE_DEPENDENCIES_ROOT_DIR=%DEP_ROOT% ^
-DCPU_ONLY=ON ^
-DBLAS=Open ^
-DOpenCV_DIR=%OpenCV_DIR% ^
-DOpenCV_STATIC=OFF ^
..
cd ..
然后开visual studio,进入Release模式编译
opencv310windows pack只提供了动态库,所以不用指定-DOpenCV_STATIC=OFF:
set BUILD_DIR=build-vs2013-opencv310
if exist %BUILD_DIR% rd /s /q %BUILD_DIR%
md %BUILD_DIR%
cd %BUILD_DIR%
set DEP_ROOT=F:/zhangzhuo/lib/caffe_windows_deps
set OpenCV_DIR=F:/zhangzhuo/lib/opencv_310/build
cmake -G "Visual Studio 12 2013 Win64" ^
-DCAFFE_DEPENDENCIES_ROOT_DIR=%DEP_ROOT% ^
-DCPU_ONLY=ON ^
-DBLAS=Open ^
-DOpenCV_DIR=%OpenCV_DIR% ^
..
cd ..
判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库的更多相关文章
- Windows下CMake编译安装OpenCV
Windows下CMake编译安装OpenCV 这是一个面向新手的在windows上运进opencv, helloword的教程. 在这里我们使用vs2019来编译opencv, 并运行一个hello ...
- Unity跨平台C/CPP动态库编译---可靠UDP网络库kcp基于CMake的各平台构建实践
1.为什么需要动态库 a)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. b)某 ...
- 基于Anaconda编译caffe+pycaffe+matcaffe in Ubuntu[不用sudo权限]
目录 caffe 编译 环境 github下载caffe源码 依赖 修改源码的编译配置 报错 测试使用 pycaffe caffe matcaffe caffe 编译 环境 Ubuntu16.04 C ...
- 基于cmake编译安装MySQL-5.5
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以 ...
- 基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤
1. 从https://github.com/chyh1990/caffe-compact下载caffe-compact代码: 2. 通过CMake(cmake-gui)生成vs2 ...
- geos 3.6.3库windows版本 已编译完成的32位版本和64位版本
网上教编译方法的很多,直接分享编译完成的很少. 我就把编译完成的分享出来吧. geos-3.6.3.tar.bz2 (Changes) 版本的 https://trac.osgeo.org/geos ...
- Windows上快速编译caffe CPU版本
windows上快速安装配置Caffe的 cpu_only环境. 一:安装环境: 1.windows10: 2.Visual Studio2013: 3.Caffe版本:http://github.c ...
- 基于cmake编译glew
cmake已经成为了C/C++开源项目的主流构建工具.glew也提供了cmake的脚本,但用cmake编译glew容易采坑:glew的github上的代码,无论是master分支还是glew-2.1. ...
- windows 10 上源码编译OpenCV并支持CUDA | compile opencv with CUDA support on windows 10
本文首发于个人博客https://kezunlin.me/post/6580691f/,欢迎阅读! compile opencv with CUDA support on windows 10 Ser ...
随机推荐
- ShenZhenXiaoLengHuanYou Technology Co.,Ltd 技术支持网站
本网页为ShenZhenXiaoLengHuanYou Technology Co.,Ltd 团队的技术支持网址,如果在我们开发的游戏中遇到任何问题,欢迎联系我们! QQ:2535510006 邮箱: ...
- Anaconda + PyCharm + Pytorch
Anaconda 1. 下载Anaconda https://www.anaconda.com/download/ 2. 安装 3. 添加环境变量 Path - C:\Users\Godzilla ...
- xml 3 字节的 UTF-8 序列的字节 3 无效
今天在eclipse中编写**.xml文件时,注释中的中文被eclipse识别到错误:3 字节的 UTF-8 序列的字节 3 无效,曾多次遇到该问题,问题的根源是: The cause of this ...
- MyCat不支持毫秒 bug fix
问题描述:mysql jdbc的驱动(mysql-connector-java-5.1.34.jar)设置的服务器的版本号最低是5.6.4才不会截取时间毫秒,但是现在取的是mycat 的版本号 5.5 ...
- 推荐一款好用的免费FTP客户端Filezilla
官网地址:https://filezilla-project.org/
- [xsy3553]游戏
题意:交互题,交互库有长为$n$的$01$串$S$,你可以用字符串$T$询问$\sum\limits_{i=1}^n[S_i=T_i]$,要求用$1030$次询问问出$S$,$n=5000$ 首先我们 ...
- Python的编码规范
7. 什么是 PEP8? 8号Python增强提案,是针对Python代码格式而编写的风格指南 8. 了解 Python 之禅么? 通过 import this 语句可以获取其具体的内容.它告诉大家何 ...
- imposm模块安装
imposm安装 pip install imposm 报错,参考:https://imposm.org/docs/imposm/2.5.0/install.html 并安装依赖: sudo ap-g ...
- [转帖]教你如何破解IC卡的校验值
教你如何破解IC卡的校验值 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin ...
- Tarjan求有向图强连通分量 BY:优少
Tarjan算法:一种由Robert Tarjan提出的求解有向图强连通分量的线性时间的算法. 定义给出之后,让我们进入算法的学习... [情境引入] [HAOI2006受欢迎的牛] 题目描述: 每头 ...