Cmake генерирует неправильные флаги для Clang-Cl: Undefined MainCrtStartup [Duplicate]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Cmake генерирует неправильные флаги для Clang-Cl: Undefined MainCrtStartup [Duplicate]

Сообщение Anonymous »

Я использую Cmake с Ninja и Clang-Cl для составления проекта в Windows.
Cmake версия минимум 3,20, я использую предустановки для указания файла инструмента, который определяет компилятор как Clang-Cl как таковой < /p>

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

set(CMAKE_C_COMPILER clang-cl)
set(CMAKE_CXX_COMPILER clang-cl)
< /code>
Компилятор разрешается, как установлен из установщика LLVM, поэтому никаких проблем с этим. 17 С помощью TARGET_COMPILE_FEATURES (lib public cxx_std_17) 
и некоторые определения компиляции , каким -то образом Cmake преобразует эти параметры в «style -style», передача -std = c ++ 17 и -dhave_foo = 1 к Clang -cl вместо/std: c ++ 17 и/d "haf_foo = 1" соответственно.
То же самое касается некоторых также включать каталоги, проходящие как -i вместо/i .
my cmake_system_name < /code> - это «Windows», поэтому я не совсем понимаю, что заставляет Cmake решать, как переводить параметры в флаги ... < /p>
Есть что -то Я забыл об этом? Вверх, теперь у меня есть ошибка конфигурации, она говорит мне, что не может связать тестовую программу: < /p>

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

-- Detecting C compiler ABI info - failed
-- Check for working C compiler: C:/DevTools/LLVM/bin/clang-cl.exe
-- Check for working C compiler: C:/DevTools/LLVM/bin/clang-cl.exe - broken
Run Build Command(s): C:/Users/Maxime.Cabanal-Duvil/AppData/Local/miniconda3/envs/lfwin/Library/bin/ninja.exe -v cmTC_ff9a0
[1/2] C:\DevTools\LLVM\bin\clang-cl.exe  /nologo   /DWIN32 /D_WINDOWS  /Zi /Ob0 /Od /RTC1 -MDd /showIncludes /FoCMakeFiles\cmTC_ff9a0.dir\testCCompiler.c.obj /FdCMakeFiles\cmTC_ff9a0.dir\ -c -- D:\source\fortran_tool\lfortran\build\default\CMakeFiles\CMakeScratch\TryCompile-gurys7\testCCompiler.c
[2/2] C:\WINDOWS\system32\cmd.exe /C "cd . && C:\Users\Maxime.Cabanal-Duvil\AppData\Local\miniconda3\envs\lfwin\Library\bin\cmake.exe -E vs_link_exe --msvc-ver=1937 --intdir=CMakeFiles\cmTC_ff9a0.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x86\rc.exe --mt=C:\DevTools\LLVM\bin\llvm-mt.exe --manifests  -- C:\DevTools\LLVM\bin\lld-link.exe /nologo CMakeFiles\cmTC_ff9a0.dir\testCCompiler.c.obj  /out:cmTC_ff9a0.exe /implib:cmTC_ff9a0.lib /pdb:cmTC_ff9a0.pdb /version:0.0 /machine:x64  /debug /INCREMENTAL /subsystem:console  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
FAILED: cmTC_ff9a0.exe
C:\WINDOWS\system32\cmd.exe /C "cd . && C:\Users\Maxime.Cabanal-Duvil\AppData\Local\miniconda3\envs\lfwin\Library\bin\cmake.exe -E vs_link_exe --msvc-ver=1937 --intdir=CMakeFiles\cmTC_ff9a0.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x86\rc.exe --mt=C:\DevTools\LLVM\bin\llvm-mt.exe --manifests  -- C:\DevTools\LLVM\bin\lld-link.exe /nologo CMakeFiles\cmTC_ff9a0.dir\testCCompiler.c.obj  /out:cmTC_ff9a0.exe /implib:cmTC_ff9a0.lib /pdb:cmTC_ff9a0.pdb /version:0.0 /machine:x64  /debug /INCREMENTAL /subsystem:console  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "C:\DevTools\LLVM\bin\lld-link.exe /nologo CMakeFiles\cmTC_ff9a0.dir\testCCompiler.c.obj /out:cmTC_ff9a0.exe /implib:cmTC_ff9a0.lib /pdb:cmTC_ff9a0.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\cmTC_ff9a0.dir/intermediate.manifest CMakeFiles\cmTC_ff9a0.dir/manifest.res" failed (exit code 1) with the following output:
lld-link: error: : undefined symbol: mainCRTStartup
ninja: build stopped: subcommand failed.
Я предполагаю, что это произойдет из отсутствующего или неправильно настроенного времени выполнения из Windows?
Второе редактирование : если я укажу обычный Clang , эта ошибка исчезает, и мне удалось пойти дальше; Но я надеялся на замену CL.Exe .
изменить заголовок, чтобы лучше отразить состояние вопроса.


Подробнее здесь: https://stackoverflow.com/questions/794 ... crtstartup
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Cmake генерирует неправильные флаги для Clang-Cl
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Cmake генерирует неправильные флаги для Clang-Cl
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ определить флаги в Java и запустить код, только если эти флаги определены?
    Anonymous » » в форуме JAVA
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Cmake генерирует неправильные пути включения
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Cmake генерирует неправильные пути включения
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

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