我的目标是构建一个简单的 C++ 解析器,它收集 C++ 程序中每个结构/类的名称。
问题与 c++20 模块有关。考虑以下代码:
import module-name;
我的解析器如何知道模块的来源并收集结构/类的名称?
如果它是 #include 指令,我的解析器将只解析给定的文件名...
有没有办法获取给定模块的相关文件名?
最佳答案
编译器加载的模块文件都是编译器之前生成的。编译器可能根据模块的给定名称为这些文件提供一些名称。其具体工作方式取决于编译器和构建环境,并且可能因编译器而异。
基本上,这并不是你的工作。生成模块时,您会从构建系统获得一些输出文件,就像库或 DLL 一样。然后,您可以将这些模块文件提供给想要使用它们的后续构建,告诉编译器在哪里可以找到这些模块文件。
关于C++20 模块 - 如何获取它们的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67185905/