C++ Tensorflow如何定义预处理器宏?
定义一些宏。TF如何设置宏,如C++ Tensorflow如何定义预处理器宏?,c++,tensorflow,macros,bazel,C++,Tensorflow,Macros,Bazel,定义一些宏。TF如何设置宏,如ANDROID,ANDROID,平台谷歌,树莓PI 我认为bazel构建文件可能预设了一些宏,如cmake(),但我找不到任何线索。查看该文件。例如,它定义了build:android\u arm--config=android。这意味着您可以在bazel中使用bazel build--config=android-我想,带有目标android的编译器在系统头中提供了一个android和\uuu android\uuuuuuuu定义-因此您不必显式修改cc\u二进制
ANDROID
,ANDROID
,平台谷歌
,树莓PI
我认为bazel构建文件可能预设了一些宏,如cmake(),但我找不到任何线索。查看该文件。例如,它定义了build:android\u arm--config=android
。这意味着您可以在bazel中使用bazel build--config=android
-我想,带有目标android的编译器在系统头中提供了一个android
和\uuu android\uuuuuuuu
定义-因此您不必显式修改cc\u二进制
目标
您还可以将定义显式添加到cc\u二进制文件中:
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令牌组成,在其前面加上-D
(或/D
)
Windows)并添加到COPTS
。与COPT不同,这些标志是为
目标和依赖它的每一条规则!小心点,因为
这可能会产生深远的影响。如有疑问,请添加“-D”(或/D
Windows)将标志改为copts
我建议您将定义添加到copts
属性中,例如:
cc_binary(
srcs = ["main.cpp"],
copts = ["-DMY_DEFINE"],
)
非常感谢。所以,我想你是说,当用户输入bazel build
命令时,这些宏是在运行时设置的?或者,如果我想“打开”这些宏,我在BUILD中添加-D
选项?我只是再次确认我对tf用法的猜测。@skytree我修改了我的答案