You must define TF_LIB_GTL_ALIGNED_CHAR_ARRAY for your compiler

// matmul.h
#pragma once
#define COMPILER_MSVC

#define NOMINMAX

https://www.jianshu.com/p/052c0a669337

从上一篇的Tensorflow win10 c++ 运行 python训练出的模型,按照Tensorflow官网给出的cmake构建和编译方案,我们实际编译了tensorflow的c++库,能够运行官方的example。那么新建一个单独的工程需要进行一定的配置。

源代码使用官方的源码main.cc

这份代码包含了读取模型,读取图片数据,进行模型预测等,足够满足简单的tensorflow功能需求。
注意的是,需要在代码头部加上

#define COMPILER_MSVC
#define NOMINMAX

原因如这篇博客所述

If you omit the COMPILER_MSVC definition, you will run into an error saying “You must define TF_LIB_GTL_ALIGNED_CHAR_ARRAY for your compiler.” If you omit the NOMINMAX definition, you will run into a number of errors saying “’(‘: illegal token on right side of ‘::’”. (The reason for this is that <Windows.h> gets included somewhere, and Windows has macros that redefine min and max. These macros are disabled with NOMINMAX.)

工程属性设置

接下来配置文件,首先本文同步的tensorflow源代码位置为D:\Projects\tensorflow。

附加包含路径

设置对应如下的包含路径,可以通过直接编辑官方例子tf_label_image_example.vcxproj到自己的工程文件

D:\Projects\tensorflow
D:\Projects\tensorflow\tensorflow\contrib\cmake\build
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\zlib_archive
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\gif_archive\giflib-5.1.4
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\png_archive
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\jpeg_archive
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\eigen_archive
D:\Projects\tensorflow\third_party\eigen3
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\gemmlowp\src\gemmlowp
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\jsoncpp\src\jsoncpp
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\farmhash_archive
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\farmhash_archive\util
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\external\highwayhash
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\protobuf\src\protobuf\src
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\grpc\src\grpc\include
链接设置

按照tf_label_image_example.vcxproj添加依赖项目,按照博客添加额外依赖路径

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
Release\tf_protos_cc.lib
zlib\install\lib\zlibstatic.lib
gif\install\lib\giflib.lib
png\install\lib\libpng12_static.lib
jpeg\install\lib\libjpeg.lib
jsoncpp\src\jsoncpp\src\lib_json\$(Configuration)\jsoncpp.lib
farmhash\install\lib\farmhash.lib
fft2d\\src\lib\fft2d.lib
highwayhash\install\lib\highwayhash.lib
protobuf\src\protobuf\$(Configuration)\libprotobuf.lib
grpc\src\grpc\$(Configuration)\grpc++_unsecure.lib
grpc\src\grpc\$(Configuration)\grpc_unsecure.lib
grpc\src\grpc\$(Configuration)\gpr.lib
wsock32.lib
ws2_32.lib
shlwapi.lib
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\protobuf\src\protobuf\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_cc.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_cc_ops.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_cc_framework.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_cpu.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_direct_session.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_framework.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_kernels.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_lib.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_ops.dir\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build\Release
D:\Projects\tensorflow\tensorflow\contrib\cmake\build

添加预编译好的obj文件,在tf_label_image_example.vcxproj文件中找到
<Object Include="D:\Projects\tensorflow\tensorflow\contrib\cmake\build\tf_core_lib.dir\$(Configuration)\arena.obj" />
开头的一长串语句,复制到我们工程目录中vcxproj的相应位置。

至此,程序就可以编译调试了。

作者:菜鸟游侠k2
链接:https://www.jianshu.com/p/052c0a669337
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

You must define TF_LIB_GTL_ALIGNED_CHAR_ARRAY for your compiler相关推荐

  1. fatal error C1189: #error: “You have to define _USE_MATH_DEFINES in the compiler settings“

    对于vs2019错误: fatal error C1189: #error: "You have to define _USE_MATH_DEFINES in the compiler se ...

  2. You have to define _USE_MATH_DEFINES in the compiler settings

    问题 "You have to define _USE_MATH_DEFINES in the compiler settings!" 解决方法 "项目属性 配置属性 C ...

  3. ()shi linux字符设备,Linux字符设备驱动基础(三)

    Linux字符设备驱动基础(三) 6 创建设备节点 6.1 手动创建设备节点 查看申请的设备名及主设备号: cat /proc/devices # cat /proc/devices Characte ...

  4. redis 之 sds (二) char []

    为什么80%的码农都做不了架构师?>>>    可以先看看: https://my.oschina.net/tsh/blog/974033 http://coolshell.cn/a ...

  5. class_create

    class_create函数跟踪: /* This is a #define to keep the compiler from merging different  * instances of t ...

  6. linux内核部件分析之——设备驱动模型之class

    前面看过了设备驱动模型中的bus.device.driver,这三种都是有迹可循的.其中bus代表实际的总线,device代表实际的设备和接口,而driver则对应存在的驱动.但本节要介绍的class ...

  7. 关于OpenMesh在Vs2008下编译与安装

    为了实现麻工的那篇骨骼分配权重算法,今天试着安装了一下OpenMesh.本来官网已经提供了基于VS2008的lib和include了.但是为了参考它的APP源码,我还是自己Cmake了一遍.下面记录一 ...

  8. event-config.h指明所在系统的环境

     出处:  http://blog.csdn.net/luotuo44/article/details/38300965 如果你打开Libevent的一些文件,比如util.h文件.就会发现使用了 ...

  9. linux内核部件分析(十)——设备驱动模型之class,linux内核部件分析(十)——设备驱动模型之class...

    前面看过了设备驱动模型中的bus.device.driver,这三种都是有迹可循的.其中bus代表实际的总线,device代表实际的设备和接口,而driver则对应存在的驱动.但本节要介绍的class ...

最新文章

  1. 2021-10-7 !二叉树的层序遍历
  2. IDEA设置使用git bash替换原有terminal(cmd)
  3. oracle 10g r2 for solaris x86,Oracle10g for Solaris9(x86)安装指南
  4. 信息学奥赛一本通 1342:【例4-1】最短路径问题
  5. ASA 5.0/8.0/9.0 杂记
  6. jquery与Ajax() 调用后台方法
  7. 查询和修改mysql最大连接数的方法
  8. STM32打印log--使用J-Link RTT Viewer
  9. CMD/Dos下远程开启3389与远程改3389端口
  10. 【五步完美整理Windows系统】
  11. Android平台压缩纹理ETC2 VS ASTC
  12. matlab字符识别ocr,OCR字符识别 matlab
  13. 7.用户登陆,用户退出,记住用户名和密码
  14. JAVA学习日记DAY09--javaweb的一些简单应用
  15. c++的构造函数赋值函数重载运算符等
  16. OpenCV混合高斯模型前景分离
  17. 【毕业设计_课程设计】基于机器学习的情感分类与分析算法设计与实现(源码+论文)
  18. mac 时间机器 禁用_如何在Mac上禁用屏幕时间通知
  19. 【话题】致敬伟大的科学家史蒂芬·霍金,他留下的预言能实现吗?
  20. 民间借贷利息,最新计算方式

热门文章

  1. mysql zip 安装 启动_window的zip版mysql安装启动
  2. 计算机网络本地连接被禁用说明什么,win10系统网络被禁用重新启用本地连接的设置技巧...
  3. php播放ppt代码,PHP+JavaScript幻灯片代码
  4. php set name,PHP Gmagick setfilename()用法及代码示例
  5. mysql 中遍历查询_mysql中循环查询
  6. php 类加载其它类,php 类自动载入的方法
  7. java堆栈信息 linux_java - Java程序无法从Linux服务器远程读取文件 - 堆栈内存溢出...
  8. php上传图片 中文,php图片上传方法
  9. filter java 是单例的吗_JAVA 设计模式之 单例模式详解
  10. python foreach用法_使用foreach rdd和foreach在pysp中迭代rdd