0

clang version 6.0.0 (tags/RELEASE_600/final)我无法导入stdstd.vector. 整体import std工作正常,但import std.vector不是。我正在使用libc++正确定义此模块的模块映射。

编辑

自定义模块映射存在同样的问题

module test {
  explicit module sub {
    header "test.hpp"
    export *
  }
}

它无法加载模块test.sub,但报告foo可以在其中找到符号。

编辑 2

clang 5.0.2行为方式相同。

编辑 3

6.0.1-rc1相同的

是否有任何与此相关的问题或尚不支持的信息?

4

1 回答 1

0

对于导入模块或者子模块,clang 6 并不是到处都能完美运行,clang 7 以后会改进。

您可以尝试-fmodules-cache-path=<your-cache-path>显式设置标志,并且您可以看到,如果构建涉及某些模块,clang 将在构建时将预编译的模块文件(通常*.pcm)填充到它。

在 clang 7 文档中,您可以练习Module Map Language来创建自己的模块以包含一些标头并导出它们,然后导入您自己的模块。如文档所述,它现在不稳定。你需要尝试。

至少在这一刻,您可以将import std其用作临时解决方法。

于 2018-06-01T15:46:22.217 回答