Tensorflow 如何定义预处理器宏?
How does Tensorflow define preprocessor macros?
tensorflow/stream_executor/platform/platform.h
定义了一些宏。TF如何设置宏,如ANDROID
,__ANDROID__
,PLATFORM_GOOGLE
,RASPBERRY_PI
?
我认为 bazel BUILD 文件可能会预设一些宏,例如 cmake(通过 cmake 定义预处理器宏),但我找不到任何线索。
看看 .bazelrc 文件。例如,它定义了build:android_arm --config=android
.这意味着您可以使用bazel build --config=android
在 bazel 中构建 - 我猜具有目标 android 的编译器在系统标头中提供了一个ANDROID
并__ANDROID__
定义 - 因此您不必显式修改cc_binary
目标。
您还可以将定义显式添加到cc_binary
:
cc_binary
目标提供define
和copts
属性:
cc_binary(name, deps, srcs, data, args, compatible_with, copts, defines, deprecation, distribs, exec_compatible_with, features, includes, licenses, linkopts, linkshared, linkstatic, malloc, nocopts, output_licenses, restricted_to, stamp, tags, testonly, toolchains, visibility, win_def_file)
从文档中:
定义:
List of strings; optional
要添加到编译行的定义列表。受"制造"变量的影响 替换和伯恩壳标记化。每个字符串,必须 由单个 Bourne shell 令牌组成,前面加上
-D
(或/D
视窗)并添加到COPTS
.与copts
不同,这些标志是为 目标和依赖于它的每一条规则!要非常小心,因为 这可能会产生深远的影响。如有疑问,请添加"-D"(或/D on 视窗)标志改为copts
。
我建议您在copts
属性中添加您的定义,例如:
cc_binary(
srcs = ["main.cpp"],
copts = ["-DMY_DEFINE"],
)
相关文章:
- 错误:无效的预处理指令 #i 的意思是 #if?
- C++预处理会生成变量成员、资源库和映射
- 使用预处理指令检查是否包含标头?
- 预处理的 C/C++ 文件是否特定于计算机?
- 使用 GCC 对 C 文件进行部分预处理(不删除 "define" 指令)
- 在 CPLEX 中求解线性规划,无需剪切和预处理
- CPP -D 选项,用于预处理 Fortran 代码
- 错误:粘贴"tmp_UINT"和"+"未提供有效的预处理令牌
- 任务计划程序库的预处理不起作用 - 多定义错误
- Eclipse 问题 - 编译期间不考虑 .c 和 .cpp 文件中定义的预处理
- 使用python预处理后,C++(opencv)中的垫子类型数据与image_to_array相同
- Howo 使用 cl 预处理为 masm 组装生成一个单独的文件
- 我有一个预处理的 C/C++ 源文件 (cacti.i).如何从这个 .i 文件生成可执行二进制文件,以便我可以像 ./
- 如何使用Visual Studio C/C++编译器(cl.exe)来预处理我的objective-C代码
- 是具有预处理前分支实现的结构违反ODR
- 与不完整的Cholesky预处理的共轭梯度返回特征库的意外错误
- Visual Studio C - 无法输出预处理文件
- 在海湾合作委员会中加快宏观预处理的任何方法
- Xmllint未设置,而在路径中找不到XMLLINT;跳过XML预处理
- 当头文件被预处理时是否有一个预处理器选项显示?