自动生成模块的依赖关系

Kla*_*aus 5 c++ dependencies module gnu-make c++20

我现在开始了解模块

如果我们想使用import <iostream>;而不是旧的样式,#include <iostream>我们需要“预编译”iostream头文件。我们可以通过简单地调用 g++ 来手动完成:

g++ -xc++-system-header -std=c++20 -fmodules-ts iostream

但这需要为所有使用的系统头文件手动创建一组规则,并将gnu make所有依赖项指向gcm.cache目录结构。

对于旧样式#include指令,我们只需使用-M-MM标志即可自动生成此类依赖项make

问:我们如何自动从导入的模块g++中获取此类依赖关系来设置规则?gnu make

目标非常简单:.gcm在构建系统需要导入这些文件之前预编译所有需要的文件。