1 安装Visual Studio

从微软官网下载Visual Studio,现在最新的版本是Visual Studio 2022,

下载Visual Studio 2022可以从这个网址下载:https://visualstudio.microsoft.com/zh-hans/

如果需要下载Visual Studio之前的版本可以从这个网址下载:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

使用Visual Studio 2019或者Visual Studio 2022都可以,我觉得问题不大,取决于你的项目。

在安装Visual Studio时勾选使用C++的桌面开发。

2 安装CMake

CMake官网:https://cmake.org/

CMake下载地址:https://cmake.org/download/

使用的最新的CMake版本即可,写本文时的CMake版本版本为3.26.0。

NCNN – Windows下使用Visual Studio编译NCNN小白教程-StubbornHuang Blog

直接下载Installer版本一路安装即可。

3 下载、编译protobuf

3.1 下载

protobuf的Github地址:https://github.com/google/protobuf/

本文使用的使用protobuf 3.11.2,可以直接从这个地址下载:https://github.com/google/protobuf/archive/v3.11.2.zip

3.2 编译

下载protobuf之后,解压缩,然后需要注意的是解压缩的文件夹不能放在中文路径下。

然后在开始菜单找到Visual Studio 2019,打开Visual Studio 2019的命令行工具x64 Native Tools Command Prompt for VS 2019,如下图所示

NCNN – Windows下使用Visual Studio编译NCNN小白教程-StubbornHuang Blog

然后在命令行工具x64 Native Tools Command Prompt for VS 2019依次输入以下命令

cd <protobuf-root-dir>
mkdir build-vs2019
cd build-vs2019
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

注意,上面的<protobuf-root-dir>为解压protobuf的根目录,比如我的文件夹为C:\Users\Admin\Desktop\protobuf-3.11.2

在上面所有命令完成之后,会在protobuf的根目录/build-vs2019文件夹下生成相关的文件,其中protobuf的根目录/build-vs2019/install文件夹下为protobuf相关的头文件、lib和二进制文件。

4 下载、编译ncnn

4.1 下载

ncnn的Github地址:https://github.com/Tencent/ncnn

在ncnn的仓库Release选择一个最新的发布版本,写本文时最新版本为ncnn20230223,然后选择full-source的后缀进行下载,full-source为发布版本对应的源代码文件,如下图

NCNN – Windows下使用Visual Studio编译NCNN小白教程-StubbornHuang Blog

4.2 编译

下载ncnn的源代码之后,解压缩包,也建议不要放在有中文的路径下。

然后在开始菜单找到Visual Studio 2019,打开Visual Studio 2019的命令行工具x64 Native Tools Command Prompt for VS 2019,在命令行工具中输入以下命令

cd <ncnn-root-dir>
mkdir -p build-vs2019
cd build-vs2019
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=<protobuf-root-dir>/build-vs2019/install/include -DProtobuf_LIBRARIES=<protobuf-root-dir>/build-vs2019/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=<protobuf-root-dir>/build-vs2019/install/bin/protoc.exe -DNCNN_VULKAN=OFF ..
nmake
nmake install

上述命令行中,为第三节中protobuf的根目录,为ncnn的根目录。

这里使用-DCMAKE_BUILD_TYPE=Release选项设置编译Release包,使用-DNCNN_VULKAN=OFF关闭Vulkan带来的GPU支持,只使用CPU。

如果需要编译Debug版本,则需要设置-DCMAKE_BUILD_TYPE=Debug;如果要使用GPU则需要使用-DNCNN_VULKAN=ON开启,但是需要下载和安装Vulkan SDK,地址为https://vulkan.lunarg.com/sdk/home

上述所有命令执行完成之后,则可以在<ncnn-root-dir>/build-vs2019/install下看到ncnn相关的include、lib、bin目录,到此所有的编译就完成了。

参考链接