chineseocr_lite_ncnn_project编译流程
项目代码
chineseocr_lite
ncnn
opencv 3.4.1
cmake 3.17.3
由于工程需要,需要生成32位的可执行文件
opencv
编译opencv 3.4.1 x86版本
下载源码,这里下载的是window版本,本质只是一个压缩包,和解压一摸一样。
解压,build_x86文件夹是自己新建的。
打开cmake gui界面,配置source code为刚刚解压的根目录下的sources文件夹,build目录为自己新建的build_x86目录。点击configure,选择相应的generator,我这边使用的是vs2017,下面选择win32,第一次有些选项会是红色的,按照自己的需求选择编译的选项之后再点击一次configure后,编译选项会恢复正常。之后再点击generate会在build_x86文件夹下生成一个可用有一个BUILD_opencv_world的选项比较重要,它可以将opencv的组件合并在一起,导入的时候就不用导入很多的lib文件了。
使用vs2017打开工程,
选择debug模式win32生成一次,release模式生成一次,INSTALL右键仅生成,即可安装
编译好的lib文件和可执行文件在如下所示路径。
测试opencv库
把D:\opencv\build_x86\install\x86\vc15\bin加入环境变量,要安装自己编译生成的bin目录添加。
新建一个空项目
添加源文件
包含路径为:
- D:\opencv\build_x86\install\include
- D:\opencv\build_x86\install\include\opencv
- D:\opencv\build_x86\install\include\opencv2
库目录为:上边编译出来的lib目录的路径,D:\opencv\build_x86\install\x86\vc15\lib
附加依赖项选择opencv_world341d.lib和opencv_world341.lib,其中带d的表示debug的lib库,不带d的表示release模式使用的库文件
将bin目录下面的opencv_world341.dll和opencv_world341d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面即可,将bin目录里面的opencv_ffmpeg341_64.dll复制到C:\Windows\System32这个文件夹里面
若是生成解决方案还是不能成功,可以参考 - https://blog.csdn.net/weixin_41991128/article/details/83656543
- https://blog.csdn.net/qq_41175905/article/details/80560429
生成解决方案成功会在release或者debug文件夹下生成可以运行的exe,打开效果正常即说明opencv库已经可以正常使用。
ncnn
参考ncnn项目的Build for Windows x64 using Visual Studio Community 2017
-
vs2017
要编译32位的就打开x86 Native Tools Command Prompt for VS 2017, x64就打开x64 Native Tools Command Prompt for VS 2017install it Start → Programs → Visual Studio 2017 → Visual Studio Tools → x86 Native Tools Command Prompt for VS 2017
-
build protobuf library
download protobuf-3.4.0 from https://github.com/google/protobuf/archive/v3.4.0.zip > cd <protobuf-root-dir> > mkdir build-vs2017 > cd build-vs2017 > cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake > nmake > nmake install
-
build ncnn library (replace with your path)
> cd <ncnn-root-dir> > mkdir -p build-vs2017 > cd build-vs2017 # cmake option NCNN_VULKAN for enabling vulkan > cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=<protobuf-root-dir>/build-vs2017/install/include -DProtobuf_LIBRARIES=<protobuf-root-dir>/build-vs2017/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=<protobuf-root-dir>/build-vs2017/install/bin/protoc.exe -DNCNN_VULKAN=ON .. > nmake > nmake install pick build-vs2017/install folder for further usage
完成之后会在D:\ncnn\build-vs2017-x86\install\lib下生成32位的ncnn.lib文件。
chineseocr_lite_ncnn_project
把编译生成的ncnn.lib文件放到D:\chineseocr_lite\ncnn_project\ocr\ncnn\lib目录下
新建build文件夹,更改原本的CMakeLists.txt文件,不加的话我这边会找不到
使用cmake,sources code目录选择ncnn_project\ocr,build目录选择ncnn_project\ocr\build目录,生成vs工程,使用vs打开之后,设置同测试opencv时的设置,进行编译。
由于比较小白,中间跳了很多坑,有什么问题可以评论区讨论,有可能我就碰到过。。。