Поддерживает ли Clangd 19.1.7 модули C ++ 20?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Поддерживает ли Clangd 19.1.7 модули C ++ 20?

Сообщение Anonymous »

Я настраиваю новый проект в C ++ 23. Я хочу написать его полностью в модулях. Настройка проекта я написал простую программу, чтобы проверить, хорошо ли работает. Вот: < /p>
main.cpp:

Код: Выделить всё

import math;

import ;

int main() {
constexpr int lhs = 2400;
constexpr int rhs = 98;
const int sum = add(lhs, rhs);

std::println("{} + {} = {}", lhs, rhs, sum);
}
< /code>
math.cppm:
export module math;

export int add(const int lhs, const int rhs) {
return lhs + rhs;
}
< /code>
cmakelists.txt:
cmake_minimum_required(VERSION 3.31)

project(
"Test"
VERSION 0.1.0
LANGUAGES CXX
)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_EXTENSIONS FALSE)

add_compile_options(-fmodules -Wall -Wextra -Wpedantic)

add_executable(test ./src/main.cpp)

file(GLOB_RECURSE modules CONFIGURE_DEPENDS ./src/*.cppm)

target_sources(
test
PRIVATE FILE_SET CXX_MODULES FILES ${modules}
)
< /code>
Все было хорошо, пока я не хотел добавить завершение кода в свой проект. Чтобы включить завершение кода, я использую языковой сервер Clangd (версия 19.1.7). Он прекрасно работает с модулями в большинстве аспектов, кроме одной вещи: когда я пытаюсь импортировать стандартный заголовок библиотеки (независимо от того, использую ли я старый #include  
или совершенно новый импорт ; ), я получаю следующую ошибку: не могу создать модуль 'std_print' clang (module_not_built)
clang
  • Код: Выделить всё

    -fbuiltin-module-map; < /li>
    -fimplicit-module-map; < /li>
    -fmodule-header; < /li>
    -fprebuilt-module-path=< /code>. < /li>
    < /ul>
    и следующие флаги в Clangd: < /p>
    
    --experimental-modules-support
    .
Также я попытался установить уровень ведения журнала Clangd для словесной и не нашел никакой информации об ошибке. /> [*] OS: macOS 15.2; < /li>
Arch: Arm64-Apple-Darwin24.2.0 (Apple M1); < /li>
Clang: Homebrew Clang Version 19.1.7 < /li>
clangd: homebrew glangd версии 19.7 < /li>
clangd: homebrew glangd. 3.31.4


Подробнее здесь: https://stackoverflow.com/questions/793 ... 20-modules
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»