Windows 环境TensorFlow源码C++编译———实战与避坑记(3)

本文档详细记录了在Windows下编译TensorFlow C++开发库的过程,包括release和debug模式,并针对编译过程中遇到的外部符号错误给出了解决方案。在MFC项目中测试TensorFlow时,还提供了配置步骤和测试代码示例。
摘要由CSDN通过智能技术生成

(续上篇)

4.4.TensorFlow C++版开发库编译 

4.4.1.  release编译

4.4.1.1.  编译tensorflow_cc.dll

bazel build --config=opt --define=no_tensorflow_py_deps=true --copt=-DTHRUST_IGNORE_CUB_VERSION_CHECK --copt=-nvcc_options=disable-warnings --local_ram_resources=10240 --local_cpu_resources=3  //tensorflow:tensorflow_cc.dll

4.4.1.2. 编译tensorflow_cc.lib

bazel build --config=opt --define=no_tensorflow_py_deps=true --copt=-DTHRUST_IGNORE_CUB_VERSION_CHECK --copt=-nvcc_options=disable-warnings --local_ram_resources=10240 --local_cpu_resources=3  //tensorflow:tensorflow_cc.lib

4.4.1.3.  编译include

bazel build --config=opt --define=no_tensorflow_py_deps=true --copt=-DTHRUST_IGNORE_CUB_VERSION_CHECK --copt=-nvcc_options=disable-warnings --local_ram_resources=10240 --local_cpu_resources=3  //tensorflow:install_headers

4.4.2. debug编译

编译时,通过添加”-c dbg”来实现debug版的编译。编译过程中遇到问题较多,未能成功编译。
bazel build  -c dbg --config=opt --define=no_tensorflow_py_deps=true --copt=-DTHRUST_IGNORE_CUB_VERSION_CHECK --copt=-nvcc_options=disable-warnings --local_ram_resources=10240 --local_cpu_resources=3   //tensorflow:tensorflow_cc.dll

4.4.3.编译结果

编译结果位于bazel_bin中,bazel_bin实际是一个软链接,真实数据存储在C:\Users\stone\_bazel_stone\7t3zwoz4\execroot\org_tensorflow

将编译结果整理到Tensorflow的安装目录下:

4.4.4. 【坑】C++开发时报缺少外部符号错误的解决办法

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::Subtract::Subtract(class tensorflow::Scope const &,class tensorflow::Input,class tensorflow::Input)" (??0Subtract@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2@1@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::Squeeze::Squeeze(class tensorflow::Scope const &,class tensorflow::Input)" (??0Squeeze@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2@@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::DecodeGif::DecodeGif(class tensorflow::Scope const &,class tensorflow::Input)" (??0DecodeGif@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2@@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::TopK::TopK(class tensorflow::Scope const &,class tensorflow::Input,class tensorflow::Input)" (??0TopK@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2@1@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::ExpandDims::ExpandDims(class tensorflow::Scope const &,class tensorflow::Input,class tensorflow::Input)" (??0ExpandDims@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2@1@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::ResizeBilinear::ResizeBilinear(class tensorflow::Scope const &,class tensorflow::Input,class tensorflow::Input)" (??0ResizeBilinear@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2@1@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "class tensorflow::Output __cdecl tensorflow::ops::Const(class tensorflow::Scope const &,struct tensorflow::Input::Initializer const &)" (?Const@ops@tensorflow@@YA?AVOutput@2@AEBVScope@2@AEBUInitializer@Input@2@@Z)

1>main.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl tensorflow::ops::DecodePng::DecodePng(class tensorflow::Scope const &,class tensorflow::Input,struct tensorflow::ops::DecodePng::Attrs const &)" (??0DecodePng@ops@tensorflow@@QEAA@AEBVScope@2@VInput@2&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值