Tensorflow如何定义预处理器宏?

时间:2019-06-01 15:46:31

标签: c++ tensorflow macros bazel

tensorflow/stream_executor/platform/platform.h定义了一些宏。 TF如何设置ANDROID__ANDROID__PLATFORM_GOOGLERASPBERRY_PI之类的宏?

我认为bazel BUILD文件可能会预置一些宏,例如cmake(Define preprocessor macro through cmake),但是我找不到任何线索。

1 个答案:

答案 0 :(得分:1)

.bazelrc文件中查看。例如,它定义了build:android_arm --config=android。这意味着您可以使用bazel build --config=android构建bazel-我想目标Android的编译器会在系统标头中提供ANDROID__ANDROID__定义-因此您不必显式修改{ {1}}目标。

您还可以将定义显式添加到cc_binary

cc_binary目标提供了cc_binarydefine属性:

copts

来自documentation

  

定义: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