首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CROSSTOOL构建ARM时修剪Bazel -I标志

使用CROSSTOOL构建ARM时修剪Bazel -I标志
EN

Stack Overflow用户
提问于 2017-08-04 00:24:41
回答 1查看 265关注 0票数 0

我编写了一个自定义的CROSSTOOL文件,它为我的Cortex-M目标调用arm-gcc编译器。我通过-isystem指定我的标志,包括sysroot。

我看到Bazel用一堆额外的-I标志增强了我对gcc的调用。这似乎没问题,b/c Bazel正在向构建过程中生成的文件添加路径,等等。

我看到Bazel还添加了一个我没有指定的-isystem

-isystem external/bazel_tools/tools/cpp/gcc3

我不知道如何让Bazel抑制它,因为通过查看唯一出现的"gcc3“in the code,它看起来像是在试图拉入一个特定的STL。

我能告诉巴泽尔不要加这个吗?这充其量是无害的,但也可能是阴险的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-05 15:13:29

让我先回答一个更一般的问题:如何迫使Bazel停止修补我的交叉椅?这可以通过在您的交叉栏中定义no_legacy_features特性来完成,只需将以下内容放入所有相关的toolchain消息中:

代码语言:javascript
复制
feature { name: "no_legacy_features" }

有了这个功能,Bazel将不会修补您的交叉架,因此它不会添加-isystem标志。但它也将停止添加所有其他标志,如-D定义、-l库等。您可以在CppActionConfigs中看到bazel添加到您的交叉栏中的所有内容。另一个问题是,我现在每天都会引入新的功能和新的构建变量,所以如果你想在未来升级bazel,你肯定需要更新crosstool。如果你不使用action_configs,也不定义no_legacy_features,你的交叉库将继续工作。最终,我在交叉椅上的工作将完成,交叉椅将是稳定的。现在还不是这样。

现在第二个问题是为什么bazel在那里添加-isystem标志,我不知道。因此,我提交了an issue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45489789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档