Как использовать Clang с модулями C ++ в Windows 10 - PullRequest
0 голосов
/ 06 апреля 2020

Я хотел начать тестировать и изучать модули и отойти от дней заголовочных файлов и посмотреть, отличается ли опыт. Я установил все необходимое (опция модуля Visual Studio в программе установки), но Clang, похоже, не может разрешить импорт. Когда я переключаюсь на MSV C, он работает нормально. В настоящее время я работаю с VS 2019 Insider Preview. Итак, как мне заставить работать clang (10, последний выпуск)?

EDIT: ошибка, о которой идет речь, module not found с Clang. MSV C работает отлично. Какие флаги мне нужно передать Clang, чтобы он мог найти модули, установленные моим VS-Installer? Например, я передаю аргумент CLI в MSV C, чтобы включить модули.

РЕДАКТИРОВАТЬ: C ++ файл (основной. cpp):

import std.core;
int main() {
    std::cout << "Hello CMake from C++20!\n" << std::endl;
    return 0;
}

CMake файл

cmake_minimum_required (VERSION 3.16)  

project ("cpp20" LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

add_compile_options(
    "$<$<CXX_COMPILER_ID:MSVC>:/experimental:module>"
)

add_executable (cpp20 "main.cpp" )

add_compile_options(
    "$<$<CXX_COMPILER_ID:MSVC>:/experimental:module>"
#   something here to let Clang use modules. I tried -fmodules, 
#  -fmopodules-ts, -fbuiltin-module-map, -fimplicit-module-maps CLI, but none work.
)

Итак, как мне заставить Clang найти модули установки VS или модули, которые он мог установить.

Вот пример zip примера проекта "Hello World".

Спасибо.

1 Ответ

0 голосов
/ 07 апреля 2020

CMake не поддерживает модули C ++. Как только он официально поддерживается, вы можете ожидать, что он будет работать. До этого компилятор или msbuild могут совершать магию c, но вы не можете на это полагаться.

...