参考ncnn cmake VS2017 编译
转载自CosmosHua 和 迷若烟雨
vs2015编译ncnn
cmake-3.9.0, protobuf-3.4.0,vs2015
编译protobuf
- 设置 源文件目录:~:/protobuf-3.4.0/cmake ,目标文件目录:~:/protobuf-3.4.0/build
- 使用cmakeGUI,点击 Configure:选择VS2015 Win64 (解决protobuf和vs2015平台不匹配的问题)
- 不勾选:protobuf_BUILD_TESTS和protobuf_MSVC_STATIC_RUNTIME
点击 Add Entry:CMAKE_BUILD_TYPE=Release
修改(可选):CMAKE_CONFIGURATION_TYPES=Release
修改:CMAKE_INSTALL_PREFIX=./install
再点2次 Configure - Generate
- 用vs2015打开protobuf.sln,编译INSTALL项目
编译ncnn
- 设置 源文件目录:~:/ncnn-master ,目标文件目录:~:/ncnn-master/build
设置 目标文件目录:~:/ncnn-master/Builds
点击 Configure:选择VS2015 Win64 - 点击 Add Entry,添加Protobuf_LIBRARIES=~:\protobuf-3.4.0\Builds\install\lib\libprotobuf.lib
- 设置Protobuf_INCLUDE_DIR=~:\protobuf-3.4.0\Builds\install\include
- 设置Protobuf_PROTOC_EXECUTABLE=~:\protobuf-3.4.0\Builds\install\install/bin/protoc.exe
- 修改(可选):CMAKE_CONFIGURATION_TYPES=Release
修改:Protobuf_SRC_ROOT_FOLDER=~:/protobuf-3.4.0/src - 再次点击 Configure ,点击 Generate
- 打开VS2015,编译其中的INSTALL项目,在目标文件目录的install和tools目录下,即可看到编译好的文件。
Windows下编译ncnn的android端的库
ncnn是腾讯开源的一个为手机端极致优化的高性能神经网络前向计算框架,目前已在腾讯多款应用中使用。
由于开发者使用的是linux类似的环境,因此只提供了build.sh用来构建android和iOS的库,但好在提供了CMakelist.txt文件,我们可以借助CMake进行跨平台的交叉编译。
将以下代码存为build.bat文件,双击执行即可
@echo off
set ANDROID_NDK=D:/Java/adroidsdk/ndk-bundle
mkdir build_android
cd build_android
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="..\android.toolchain.cmake" ..\ -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe" -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi" -DANDROID_NATIVE_API_LEVEL=9
cmake --build .
cmake --build . --target install
cd ..
pause
其中ANDROID_NDK要换成你本机android ndk所在的目录,没有的话就去搜索下一个,最好15c版本及以上。