环境:
Win10
Visual studio 2015
Cmake3.10
OpenCV 3.4.0
Protobuf3.4.0
到官网下载windows版本的Cmake,ncnn要求cmake版本不低于3.10。
按照安装向导安装就可以了,记得添加环境变量。
到官网下载编译好的安装包,解压之后添加环境变量就可以了。
到官网自行下载安装,这里不再赘述。
到下载链接下载protobuf3.4.0,然后解压。
在开始菜单的Visual C++ Build Tools,打开下面的Visual C++ 2015 x64 Native Build Tools Command Prompt。
进入protobuf3.4.0的根目录,
cd protobuf-3.4.0
新建一个文件夹作为编译的工作目录,
mkdir build-vs2015
cd build-vs2015
执行cmake,
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake
执行,
nmake
在build-vs2015下面就生成了
执行
nmake install
build-vs2015/install下就将相应的头文件、可执行文件和库归集在一起了。
git clone https://github.com/Tencent/ncnn.git
这里首先修改的是examples/CMakeLists.txt,主要是针对OpenCV3,因为ncnn默认是支持opencv2,如果这里不进行修改,直接cmake之后make会报很多opencv的undefined reference错误。
打开examples/CMakeLists.txt,在最上面添加
set(OpenCV_DIR D:/mysoftware/opencv/build)
添加
include_directories(${OpenCV_DIR}/include)
现在修改根目录下的CMakeLists.txt,将
#add_subdirectory(examples)
的注释取消。
add_subdirectory(examples)
因为我需要编译ncnn下的examples。
打开examples/squeezenet.cpp,在上面头文件引用处添加
#include
打开examples/shufflenetv2.cpp,在上面头文件引用处添加
#include
同样打开Visual C++ 2015 x64 Native Build Tools Command Prompt,进入ncnn的根目录,新建一个文件夹作为编译的工作目录,
mkdir -p build-vs2015
cd build-vs2015
执行cmake,
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=D:\code\c++\protobuf-3.4.0\build-vs2015\install\include -DProtobuf_LIBRARIES=D:\code\c++\protobuf-3.4.0\build-vs2015\install\lib\libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=D:\code\c++\protobuf-3.4.0\build-vs2015\install\bin\protoc.exe -DNCNN_VULKAN=OFF ..
执行
nmake
在build-vs2015下面就生成了
执行
nmake install
build-vs2015/install下就将相应的头文件和库归集在一起了。
下面进入build-vs2015/examples目录下,这里面有几个可执行文件。
将ncnn根目录下的examples文件夹下的squeezenet_v1.1.bin和squeezenet_v1.1.param拷贝到build-vs2015/examples目录下。
执行
squeezenet.exe test.jpg
打开根目录下examples/synset_words.txt,看一下152代表什么,
和【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn环境搭建的结果是一致的。