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在重新编译即可。

 

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值