首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无需修改项目/工作空间即可配置bazel工具链

无需修改项目/工作空间即可配置bazel工具链
EN

Stack Overflow用户
提问于 2021-04-16 23:29:50
回答 1查看 120关注 0票数 0

我有一个Bazel项目(新的tcmalloc),我正在尝试将它集成到一个典型的GNU Make项目中,该项目使用它自己的编译器/libc++构建。我们的目标是不分叉上游项目。

如果我正确地将所有C++选项传递给bazel (其中一组是-nostdinc++ -I<path to libc++>),那么Bazel就是uhappy The include path '/home/vlovich/myproject/deps/toolchain/libc++/trunk/include' references a path outside of the execution root. (tcmalloc是一个git子模块兄弟@ deps/tcmalloc)。可以通过给Bazel提供一个自定义脚本来实现这种“工作”,因为编译器会注入这些标志,这样Bazel就永远看不到它们了。然而,我只想定义一个工具链来正常工作。

我已经阅读了我能找到的关于这个主题的所有文档,但我不清楚如何将这些文档粘合在一起。

具体地说,我真的不清楚我应该把工具链定义文件放在哪里,或者如何告诉Bazel找到这些定义。有没有办法给bazel一个目录,让它用来查找工具链定义?我是否需要创建一个顶级工作区@ /home/vlovich/myproject并在那里注册tcmalloc和我的工具链,然后从/home/vlovich/myproject而不是/home/vlovich/myproject/deps/tcmalloc调用bazel

EN

回答 1

Stack Overflow用户

发布于 2021-04-17 00:23:36

如果你不是bazel的维护者,工具链支持是相当复杂的,而且很难理解。

您可以使用CCCXX环境变量来设置不同的编译器,如:CC=your_c_compiler CXX=your_c++_compiler bazel build ...。您可以编写自己的自定义脚本包装器,它将充当普通的C++编译器

-I<path to libc++>不起作用,因为所有正常的包含路径都必须在srcs属性中定义,或者通过deps属性指示的依赖项定义。对于系统范围的依赖项,请使用-isystem阅读有关它的更多信息https://stackoverflow.com/a/44061589/4638604

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

https://stackoverflow.com/questions/67128060

复制
相关文章

相似问题

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