参考:【ncnn】NCNN + WIN10 + VS2015 编译和测试
参考:程序底层工具:cl编译器
这里我遇到了我的cmake-gui或cmake也无能为力的情况,可以通过设置环境变量让powershell或cmd黑窗口找到cl编译器,但这并不是我喜欢的,因为我不喜欢设置太多环境变量。
办法总是有的,用它:
或者:
mkdir build-vs2015
cd build-vs2015
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
其他问题:
NMAKE:fatal error U1077.“cl.exe” return code 0xc0000135
产生原因:在安装visual studio的时候没有勾选注册环境变量导致的。
解决办法:在系统环境变量中加入visual studio的安装路径:vs安装路径\VC\Bin,以及vs安装路径\Common7\IDE
NMAKE:fatal error U1077. return code 0x2
产生原因:找不到代码文件中包含的头文件
解决办法:cmd下进入到vs安装路径\VC\Bin下,执行vcvars32,此时会执行vcvas32.bat自动为vs设置环境变量
很抱歉,使用这种命令行的方式编译失败了,还是NMAKE的原因,又换回cmake-gui了。
cmake时会报错:Cannot find gmock directory.
解决办法参考:win10 vs2017编译腾讯的NCNN
第一种:在protobuf根目录有个autogen.sh,直接在cmd里找到这个并运行,它会自动下载(但因为google下载会涉及到翻qiang,所以前提是能翻才能下载),个人推荐这种方式,因为下载的版本与protobuf版本是匹配的,不会太容易出现不必要的坑。(本人使用此方法)
我不确定有没有墙的问题,反正我没有翻,直接在protobuf根目录下打开powershell,执行
.\autogen.sh
会自动下载gmock.
然后再使用cmake就可以通过了。编译时protobuf通过,protobuf_lite失败。
后来又尝试protobuf3.6.0,没有勾选test,安装路径 ./install/protobuf.
编译安装完成。
下一步编译ncnn
这里直接使用cmake-gui比较顺利。
记录一下遇到的问题
1、自己配置一下protobuf路径和opencv路径
2、生成ncnn.sln项目,编译时会有两个子项目编译失败,分别是caffe2ncnn和onnx2ncnn
原因是它们都使用的protobuf静态库编译属性是MT
将这两个子项目的编译属性也改成MT就可以编译通过。