Я пытаюсь создать проект CMake на своем новом компьютере, я установил соответствующий комплект разработчика Windows 10. Но при попытке создать файлы сборки с помощью cmake я получаю ошибки связывания с помощью внутренних сценариев тестирования компилятора cmake, говорит:
-- Check for working C compiler: X:/xx/xx/LLVM/bin/clang.exe - broken
CMake Error at D:/BuildTools/CMake/share/cmake-3.30/Modules/CMakeTestCCompiler.cmake:67 (message):
The C compiler
"X:/xx/xx/LLVM/bin/clang.exe"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: 'X:/x-projects/cmake-initial/build/CMakeFiles/CMakeScratch/TryCompile-ywq7mz'
Run Build Command(s): X:/BuildTools/Ninja/ninja.exe -v cmTC_f9821
[1/2] <A long list of commands/subcommands invoked by cmake>
[2/2] <A long list of commands/subcommands invoked by cmake>
FAILED: cmTC_f9821.exe
lld-link: error: could not open 'kernel32.lib': no such file or directory
lld-link: error: could not open 'user32.lib': no such file or directory
lld-link: error: could not open 'gdi32.lib': no such file or directory
lld-link: error: could not open 'winspool.lib': no such file or directory
...list goes on...
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Примечание. Я сократил количество ненужных элементов журнала ошибок, и это облегчило чтение.
Теперь, как вы видите, он не может ссылаться на библиотеки, включенные в мой комплект разработчика Windows. Я попытался добавить каталог библиотеки внутри Windows Dev Kit в PATH. Все еще не работает!
Я не использую набор инструментов Visual Studio и MSVC, я использую CMake с набором инструментов Ninja и Clang. Я не хочу вручную изменять эти сценарии тестирования компилятора, потому что это создает еще больше беспорядка.
Обновлено:
Таким образом, вопрос сводится к следующему:
Как убедиться, что CMake найдет эти системные библиотеки для связи без внесения каких-либо изменений в сценарии сборки (CMakeLists.txt) (автоматический поиск системных библиотек)?
На моем старом компьютере все было хорошо, у меня была настроена цепочка инструментов clang, но у меня не было комплекта разработчика Windows, вместо этого у меня была установлена Visual Studio с установленными библиотеками разработки msvc и C++. С этим все сработало нормально, я просто ищу решение, чтобы эти сценарии тестовой компиляции находили их, не изменяя. (На новом компьютере)
Итак... вы пробовали без гида?
Да. Я сам настроил цепочку инструментов, мне просто нужно знать, смогу ли я связать эти библиотеки с этой тестовой программой, созданной сценариями тестирования компилятора cmake.
@Yunnosch Проще говоря, я пытаюсь вручную настроить среду разработки в редакторе кода vsc, а не в vs ide. У меня возникли проблемы с настройкой Windows 10 SDK с помощью CMake, поскольку он не может найти библиотеки разработчиков Windows.
Хорошо, я понял, что компоновщик не смог найти необходимые библиотеки Windows Dev Kit для компоновки, поскольку подкоманда, сгенерированная тестовыми сценариями компилятора cmake, не содержит пути к этим библиотекам.
Простое решение этой проблемы — создать переменную среды с именем LIB
, содержащую путь к папке этих библиотек. В моем случае: C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64
(; используется для разделения обоих путей) Это заставило компоновщик заглянуть в эти папки и подхватить нужные библиотеки.
Пожалуйста, дайте ссылку на руководство/руководство/спецификацию, которому вы следовали при установке. Я спрашиваю, потому что многие вопросы сводятся к следующему: «Я только что попытался установить самую недружелюбную для новичков среду из существующих, без систематического и проверенного руководства».