Как включить модуль Clang TS? - PullRequest
1 голос
/ 15 апреля 2019

простой вопрос. Я использую CMake и VSCode для простого проекта C ++, и я хотел бы использовать модуль TS Clang. Я пробовал и -fmodules, и fmodules-ts, но оба флага не распознаются.

Мой файл CMakeLists.txt:

add_executable(test
  test.cpp
)

set_target_properties(test
  PROPERTIES 
    CXX_STANDARD 20
)

target_compile_options(test 
  PRIVATE
    "-fmodules" # or "-fmodules-ts"
    "-Wall"
    "-Wextra"
    "-Wnon-virtual-dtor"
    "-Wnoexcept"
    "-Wconversion"
)

и в файле compile-commands.json каталога компоновки команда, используемая при компиляции, выглядит так:

/usr/bin/c++ -g -fmodules -Wall ... -std=gnu++2a -o <destination> -c <my .cpp file>.

При запуске CXX=clang cmake .. в моем каталоге build/ команда устанавливается как /usr/bin/c++, поэтому я предполагаю, что это какой-то псевдоним.

Кто-нибудь знает, что мне не хватает?

Для ясности приведена ошибка:

c++: error: unrecognized command line option '-fmodules'; did you mean '-fmudflap'?

1 Ответ

1 голос
/ 15 апреля 2019

Нашел ответ. /usr/bin/c++ считается компилятором по умолчанию в системах POSIX, и моя ОС совместима с POSIX. c++ была символической ссылкой на компилятор g++, поэтому я просто обновил символическую ссылку, указав на /usr/bin/clang. Я полагаю, это потому, что в моем наборе CMakeTools был только clang для C, и cmake предположил, что по умолчанию usr/bin/c++ - это то, что я хотел бы для C ++.

...