visual studio cmake静态编译opencv 以及使用静态库编译可执行文件-Anlogic-安路社区-FPGA CPLD-ChipDebug

visual studio cmake静态编译opencv 以及使用静态库编译可执行文件

提前准备:
visual studio 2019(64位)
opencv-4.3.0
opencv-contrib-4.3.0
cmake-3.1.8(64位)**

注意编译windows版本的opencv要下载windows版的opencv.exe安装后,用那个里面的源码,不要直接下载全部源码。

编译静态opencv库
步骤:
打开cmake-gui,source目录为opencv目录下source,在opencv目录下新建一个build-static文件作为build目录。(如下图)

20240610194632698-image

点击configure按钮,选择visual studio 2019
等待初次configure完成,中间区域内会出现一系列编译选项

20240610194647217-image

更改编译选项使得编译为静态库而非动态库:搜索SHARED,在中间区域修改BUILD_SHARED_LIBS的选中状态为OFF(checkbox未选中状态),如图;

20240610194703223-image

更改编译选项使得包含opencv-contrib-3.4.1中的模块:搜索EXTRA,在中间区域修改OPENCV_EXTRA_MODULES_PATH的Value为opencv-contrib-3.4.1的解压路径下的子路径:OPENCV_CONTRIB_DIR/modules,如图;(注意:不要直接复制路径,要点下图红色框内按钮手动选择,不然会报错

20240610194930678-image

搜索world,在中间区域修改BUILD_opencv_world设置为true(勾选),这一步是为了让生成的lib文件整合成起来。

然后再次点configure, 完成configure后点generate,最终会打印如下日志表示成功。

20240610210339534-image

generate完成之后就会生成VS工程,用VS打开进行编译即可。

20240610210229473-image

分别编译debug版本和release版本。

打开该工程,在顶部选择 Release ,在右侧解决方案资源管理器中找到 CMakeTargets/ALL_BUILD 选项,右键生成。生成完毕后在右侧解决方案资源管理器中找到 CMakeTargets/INSTALL 选项,右键生成。

20240610214133247-image

生成完毕后在 opencv-4.4.0 / build / install 目录下可以看到我们生成的库文件与头文件

20240610214144553-image

在 opencv-4.4.0 \ build \ install \ x86 \ vc16 \ lib 下是程序需要使用的lib文件,在vs编译时使用release方式可以得到 opencv_world440.lib 与 opencv_world440d.lib,其中末尾带d的是在程序debug方式编译运行时使用的。

最后,按照1.1中步骤将新生成的库的bin添加至环境变量即可。

CMaker添加代理

CMakeLists.txt文件中

set(ENV{http_proxy} "http://127.0.0.1:8082")
set(ENV{https_proxy} "http://127.0.0.1:8082")

或者CMakerGUI中

20240611155028478-image

去掉python和java的绑定加快编译时间

20240611164542106-image

20240611164559619-image

libprotobuf编译报错

报 error C2491 不允许 dllimport 静态数据成员 的定义。

20240611171021756-image

删除上面这个文件中的所有dllimport

请登录后发表评论

    没有回复内容