C++20 模块 - 如何获取它们的文件名?

标签 c++ parsing module c++20

我的目标是构建一个简单的 C++ 解析器,它收集 C++ 程序中每个结构/类的名称。

问题与 c++20 模块有关。考虑以下代码:

import module-name;

我的解析器如何知道模块的来源并收集结构/类的名称?

如果它是 #include 指令,我的解析器将只解析给定的文件名...

有没有办法获取给定模块的相关文件名?

最佳答案

编译器加载的模块文件都是编译器之前生成的。编译器可能根据模块的给定名称为这些文件提供一些名称。其具体工作方式取决于编译器和构建环境,并且可能因编译器而异。

基本上,这并不是你的工作。生成模块时,您会从构建系统获得一些输出文件,就像库或 DLL 一样。然后,您可以将这些模块文件提供给想要使用它们的后续构建,告诉编译器在哪里可以找到这些模块文件。

关于C++20 模块 - 如何获取它们的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67185905/

相关文章:

android - 解析 XML 不匹配标记时出错

python - 仅匹配出现在解析字符串右半部分的元素

recursion - OCaml 模块中相互调用的函数

地理 IP 查找上的 Perl 未定义错误

python - python第三方模块(lxml)放在哪里?

c++ - 如何识别模板参数是否为 std::complex?

java - 如何使用 SimpleDateFormat 仅解析日期

c++ - 警告 : statement has no effect (C++)

c++ - 在 C++ 中插入映射

c++ - 在 D3D12 上获取显示器的刷新率