Tensorflow之编译window平台下基于c/c++使用tensorflow
最近在考虑将tensorflow的工程迁移到window平台下进行,由于linux和mac平台在官网上有对应的c/c++接口的安装说明,而window平台则需要自己编译。所以现将编译过程记录如下:
一、环境准备
1. vs2015
2. swigwin-3.0.12。下载链接为 http://swig.org/download.html 。下载之后解压缩即可。
3. Cmake , 下载链接为:https://cmake.org/download/ 。下载之后解压缩即可,但是要配置环境变量,把对应的cmake.exe文件放入对应的系统路径中。
4. git 和python
5. 在环境变量中将C:\Windows\Microsoft.NET\Framework64\v4.0.30319加入环境变量(为了使用MSBuild)
二、编译步骤(Release)
1. 首先git下tensorflow的源码,具体地址可参见源源码编译那篇博客。
2. 在tensorflow/tensorflow/contrib/cmake/目录下建立build
3. 在build目录下面执行cmake .. -A x64 -DCMAKE_BUILD_TYPE=Release -DSWIG_EXECUTABLE=D:/swigwin-3.0.12/swig.exe
-DPYTHON_EXECUTABLE=D:/Python/Python35/python.exe -DPYTHON_LIBRARIES=D:/Python/Python35/libs/python35.lib
4. 执行
set PreferredToolArchitecture = x64
MSBuild /p:Configuration=Release ALL_BUILD.vcxproj
执行成功之后会在对应的目录下出现下述列表
其中tensorflow.lib和tensorflow.dll即为所需要的文件。
5. 使用和验证
1. 在 vs 中新建一个工程(控制台文件和空白项均可)。在工程中右击——属性——c/c++——常规——附加包含目录,在该目录下添加E:\tensorflow
E:\tensorflow\tensorflow\contrib\cmake\build
E:\tensorflow\tensorflow\contrib\cmake\build\external\eigen_archive
E:\tensorflow\tensorflow\contrib\cmake\build\protobuf\src\protobuf\src
E:\tensorflow\tensorflow\contrib\cmake\build\external\nsync\public
2. 右键——项目——添加——现有项,找到对应包含tensorflow.lib的目录。加入lib链接。
3. 右键——属性——c/c++——预处理器,然后在里面加入PLATFORM_WINDOWS
4. 输入代码并运行
#include <stdio.h>
#include <stdlib.h>
#include <tensorflow\core\public\version.h>
int main(void)
{
printf("Hellow from Tensorflow c library version %s\n", TF_VERSION_STRING);
system("pause");
return 0;
}
如果想在一个已经有的工程中加入tensorlfow的代码,可以在工程的属性下面,导入上述对应的tensorflow相关依赖和链接库即可。
三、一些警告
1. 一般在编译完之后会有如下界面,该界面不用管。
2. 在编译过程有时候会报\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已退 出,代码为 1。 [D:\tensorflow-master\tensorflow\contrib\cmake\build\grpc.vcxproj]
此时在cmakelist中将grpc设置为off在重新编译即可。
更多推荐
所有评论(0)