c++ - 如何在 gcc 或 clang 中使用 c++20(启用模块)包含多个预编译头

标签 c++ g++ clang++ c++20 c++-modules

在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/

相关文章:

c++ - C++ 中允许使用什么 "conversion"的模板模板参数?

c++ - 通过 boost::asio::tcp::ip 发送的大正文

c++ - OpenCV 双垫显示为全白

c++ - 使用来自另一个类 SFML c++ 的函数时,Sprite 不会移动

c++ - 从 C++ 调用 Haskell

gcc - 我可以在枚举上使用 gcc 可见性属性吗?

c++ - 编译模板类因 g++ 或 clang++ 失败

c++ - 使用 shared_ptr 和 unique_ptr 指向数组时的区别?

c++ - C++ 模板的问题(大惊喜!)。为什么这行不通?

升级到 Mac OS X 10.9/Xcode 5.0.1 后出现 C++ 链接错误