Не могу импортировать субмодуль - PullRequest
0 голосов
/ 01 июня 2018

Вкл. clang version 6.0.0 (tags/RELEASE_600/final) Я не могу импортировать std подмодули, такие как std.vector.Целый import std работает нормально, но import std.vector нет.Я использую libc++ modulemap, который правильно определяет этот модуль.

Редактировать

Та же проблема существует с настраиваемой картой модулей

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

Не удается загрузить модуль test.subно сообщает, что в нем можно найти символ foo.

Редактировать 2

clang 5.0.2 ведет себя так же.

Редактировать 3

6.0.1-rc1 то же

Есть ли какие-либо проблемы, связанные с этим или сведения о том, что он еще не поддерживается?

1 Ответ

0 голосов
/ 01 июня 2018

Для модулей или субмодулей импорта clang 6 работает не везде идеально, в будущем улучшится clang 7.

Вы можете попробовать явно установить флаг -fmodules-cache-path=<your-cache-path>, и вы можете видеть, что, если в сборке участвует какой-то модуль, clang заполняет предварительно скомпилированные файлы модуля (обычно *.pcm) при сборке.

В документации по clang 7 вы можете попрактиковаться Карта модулейЯзык , чтобы создавать свои собственные модули, включать некоторые заголовки и экспортировать их, а затем импортировать свои собственные модули.Как описано в документации, сейчас она не стабильна.Вам нужно попробовать.

По крайней мере, на данный момент вы можете использовать import std как временное решение.

...