问题标签 [iwyu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - include-what-you-use 与非默认 g++ 版本
我第一次尝试让include-what-you-use与我的代码库一起工作。
我的 CentOS6 系统默认安装了 g++ 4.4.7。我将 g++ 4.9.3 用于我的 C++11 项目。这四个选择是不灵活的。
我有效地为我的项目构建了 cmake 数据库,如下所示:
当我编译我的项目时,我得到这样的输出:
伟大的!我不需要deque.h
那个文件,所以这个工具有点工作!
不过,这些警告令人沮丧……当然stddef.h
是在我的实际编译中发现的,因为它实际上是在 gcc-4.9.3 下定义的:
问:如何更改我的${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}
变量,以使工具如下所示gcc-4.9.3
而不是默认值gcc-4.4.7
?
请注意,如果我要求cmake
导出 JSON 编译命令,则此条目类似于:
谢谢!
编辑:
根据下面@KamilCuk 的建议,sysroot
在 iwyu 命令中添加 a 似乎会使 4.4.7 警告消失。
它找不到像现在这样的基础知识<map>
,<vector>
但是 4.4.7 警告已经消失,这告诉我我们走在正确的轨道上!
使用--sysroot /path/to/gcc-4.9.3/include/c++/4.9.3
并不能解决这个问题。对于许多常见文件,我收到很多这样的错误: