我现在开始了解模块
如果我们想使用
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
文件。