Попытка собрать два модуля C 20 вместе в один модуль с использованием clang v12

#c #clang #clang #c 20

#c #clang #clang #c 20

Вопрос:

Я пытаюсь связать два модуля C 20 вместе, используя clang v12. Связывание модулей C 20 с исполняемым файлом работает нормально, например, ниже main находится исполняемый файл:

clang -std=c 20 -fmodules -pedantic -Wall -fprebuilt-module-path= . main.cpp mainUi.pcm video.pcm audio.pcm CameraWidgetFactory.pcm AudioInterfaces.pcm -o главная

компиляция без ошибок, но ссылка на другой модуль выдает эту ошибку. Вот ошибка и команда из файла Makefile:

clang -std=c 20 -fmodules -pedantic -Wall -fmodules-ts -c -fprebuilt-module-path= . AudioFactory.cpp AudioFactory.hpp AudioInput.pcm -Xclang -emit-module-интерфейс

и ошибка:

clang-12: /home/james/llvm-project/clang/lib/Frontend/FrontendAction.cpp:636: bool clang::FrontendAction::BeginSourceFile(clang::CompilerInstanceamp;, const clang::FrontendInputFileamp;): Утверждение `hasASTFileSupport() amp;amp; «Это действие неесть поддержка файлов AST!»‘ не удалось.

ПОЖАЛУЙСТА, отправьте сообщение об ошибке на https://bugs.llvm.org / и включите обратную трассировку сбоя, предварительно обработанный исходный код и связанный сценарий запуска.

  1. Аргументы программы: /usr/local/bin/clang-12 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all —mrelax-relocations -disable-free -main-file-name AudioInput.pcm -mrelocation-model static -mframe-pointer=все-fmath-errno -fno-округление-математика -mconstructor-псевдонимы -munwind-таблицы -цель-процессор x86-64 -настройка -cpu generic -fno-разделение-карлик-встраивание -отладчик-настройка=gdb -resource-dir /usr/local/lib /clang/12.0.0 -Стена-pedantic -std=c 20 -fdebug-compilation-dir /home/james/eclipse-workspace/AudioFactory -ferror-limit 19 -fgnuc-version=4.2.1 -fmodules -fmodules-ts -fimplicit-module-maps -fmodules-cache-path=/home/james/.cache/clang/ModuleCache -fprebuilt-module-path= . -fmodules-validate-system-headers -fcolor-diagnostics -emit-module-interface -faddrsig -o AudioInput.o -x pcm AudioInput.pcm #0 0x000055822646a3d1 llvm::sys::printStackTrace(llvm::raw_ostreamamp;, int) (/usr/local/bin/clang-12 0x33793d1) #1 0x0000558226467f74 llvm::sys::RunSignalHandlers() (/usr/local/bin/clang-12 0x3376f74) #2 0x00005582264680e0 SignalHandler(int) (/usr/local/bin/clang-12 0x33770e0) #3 0x00007fe8847cd3c0 __восстановить_rt (/lib/x86_64-linux-gnu/libpthread.so.0 0x153c0) #4 0x00007fe88426d18b поднять / построить / glibc-ZN95T4/ glibc-2.31/signal/../sysdeps/unix/ sysv/linux/raise.c:51:1 #5 0x00007fe88424c859 прервать / построить / glibc-ZN95T4/glibc-2.31/stdlib/прервать .с:81:7 #6 0x00007fe88424c729 get_sysdep_segment_value /build/glibc-ZN95T4/glibc-2.31/intl/loadmsgcat.c:509:8 #7 0x00007fe88424c729 _nl_load_domain /build/glibc-ZN95T4/glibc-2.31/intl/ loadmsgcat.c:970:34 #8 0x00007fe88425df36 (/lib/x86_64-linux-gnu/libc.so.6 0x36f36) #9 0x0000558226dc0128 clang::FrontendAction::BeginSourceFile(clang::CompilerInstanceamp;, clang ::FrontendInputFile constamp;) (/usr/local/bin/clang-12 0x3ccf128) #10 0x0000558226d6cd72 clang::CompilerInstance::ExecuteAction(clang::FrontendActionamp;) (/usr/local/bin/clang-12 0x3c7bd72) #11 0x0000558226e94598 clang::ExecuteCompilerInvocation(clang::CompilerInstance *) (/usr/local/bin/clang-12 0x3da3598) #12 0x00005582240370ed cc1_main(llvm::ArrayRef<символ const*>, char const*, void*) (/usr/local/bin/clang-12 0xf460ed) #13 0x0000558224032318 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>amp;) (/usr/local/bin/clang-12 0xf41318) #14 0x0000558223f7fd9c основной (/usr/local/bin/clang-12 0xe8ed9c) #15 0x00007fe88424e0b3 __libc_start_main /build/glibc-ZN95T4/glibc-2.31/csu/../csu/libc-start.c:342:3 #16 0x0000558224031e6e _start (/usr/local/bin/clang-12 0xf40e6e) clang-12: ошибка :невозможно выполнить команду: прервано (сброшено ядро) clang-12: ошибка: команда интерфейса clang не удалась из-за сигнала (используйте -v, чтобы увидеть вызов) версия clang 12.0.0 (https://github.com/llvm/llvm-project.git a5f95887d0f8d27f1c33f19944d0c1da66aef606) Цель: x86_64-неизвестно-linux-gnu Модель потока: posix InstalledDir: /usr/local/bin clang-12: примечание: сообщение о диагностике:

ПОЖАЛУЙСТА, ПРИЛОЖИТЕ СЛЕДУЮЩИЕ ФАЙЛЫ К СООБЩЕНИЮ ОБ ОШИБКЕ: Предварительно обработанные исходные коды и связанные с ними сценарии запуска находятся по адресу: clang-12: примечание: сообщение о диагностике: /tmp/AudioFactory-462949.cpp clang-12: примечание: сообщение о диагностике: /tmp/AudioFactory-462949.cache clang-12: примечание:сообщение о диагностике: /tmp/ AudioFactory-9851b0.hh clang-12: примечание: сообщение о диагностике: /tmp/ AudioFactory-9851b0.cache clang-12: примечание: сообщение о диагностике: /tmp/AudioFactory-462949.sh clang-12: примечание: диагностический msg:


make: *** [Makefile:19: AudioFactory.pcm] Ошибка 254

Кто-нибудь может сказать, что здесь не так?

Комментарии:

1. Ошибка говорит сама за себя, выглядит как ошибка компилятора.

2. Есть ли причина не верить им на слово и отправлять отчет об ошибке компилятора? clang похоже, это проблема с их стороны; Я не могу представить, что они будут поощрять вас отправлять отчет об ошибке, когда это может быть просто плохой код.

3. Это случилось только сегодня, подумал, что кто-то еще может что-то знать. Будет создан отчет об ошибке, если он еще не существует.