在c++20中,当启用模块时,每个包含都应该被封装,以便顺序无关紧要,并且宏不会泄漏等。
Apparently 是否可以预编译多个 header 的问题是肯定的。
我现在的问题是:如何执行此操作:也就是说:我如何首先预编译一组 header ,然后使编译器将它们(全部)识别为我的预编译 header 使用 c++20 模块的翻译单元(使用 linux 命令行)。
我想要 g++ 的解决方案,但如果只能用 clang 实现,那么答案就可以了。
请注意 this问题可能已经过时了。
最佳答案
How to include multiple precompiled headers ... in gcc
没有办法。正如文档所述:
Only one precompiled header can be used in a particular compilation.
(with modules enabled) in gcc
在撰写本文时,GCC 尚未发布版本支持模块。
目前还不清楚“包含预编译头”与模块到底有何关系,但我猜您可能对 Clang 文档的“使用预构建模块”部分感兴趣。
关于c++ - 如何在 gcc 或 clang 中使用 c++20(启用模块)包含多个预编译头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65236079/