tensorflow/stream_executor/platform/platform.h
定义了一些宏。 TF如何设置ANDROID
,__ANDROID__
,PLATFORM_GOOGLE
,RASPBERRY_PI
之类的宏?
我认为bazel BUILD文件可能会预置一些宏,例如cmake(Define preprocessor macro through cmake),但是我找不到任何线索。
答案 0 :(得分:1)
在.bazelrc文件中查看。例如,它定义了build:android_arm --config=android
。这意味着您可以使用bazel build --config=android
构建bazel-我想目标Android的编译器会在系统标头中提供ANDROID
和__ANDROID__
定义-因此您不必显式修改{ {1}}目标。
您还可以将定义显式添加到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)
要添加到编译行的定义列表。服从“ Make”变量 替换和Bourne Shell标记化。每个字符串,必须 由单个Bourne shell令牌组成,前面带有
List of strings; optional
(或-D
Windows)并添加到/D
。与COPTS
不同,这些标志是为 目标和依赖它的每条规则!要非常小心,因为 这可能会产生深远的影响。如有疑问,请添加“ -D”(或/ D Windows)标记为copts
。
我建议您将定义添加到copts
属性中,例如:
copts