Моя проблема похожа на эту: Проблемы при создании решения для VS 2017 с CMake , но решение не работает для меня.
При запуске cmake в Командная строка разработчика для VS 2017 , я получил сообщение об ошибке (от CMakeError.log
):
ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл "ucrtd.lib" [E: \ Projects \ My Project \ VS \ CMakeFiles \ 3.14.4 \ CompilerIdC \ CompilerIdC.vcxproj]
Но файл ucrtd.lib
находится в папке Windows Kits
.
эхо% LIB%
D: \ Program Files (x86) \ Сообщество Microsoft Visual Studio 2017 \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x86; C: \ Program Files (x86) \ Windows Kits \ NETFXSDK \ 4.6.1 \ lib \ um \ x86; C: \ Program Files (x86) \ Windows Kits \ 10 \ lib \ 10.0.17763.0 \ ucrt \ x86 ; C: \ Program Files (x86) \ Windows Kits \ 10 \ Lib \ 10.0.17763.0 \ ит \ x86;
dir "C: \ Program Files (x86) \ Windows Kits \ 10 \ lib \ 10.0.17763.0 \ ucrt \ x86 \" / w / b
libucrt.lib
libucrtd.lib
ucrt.lib
ucrtd.lib
И я также пытаюсь вручную запустить команду сборки, указанную в CMakeError.log
, она завершается успешно, без ошибок.
CL.exe / c / nologo / W0 / WX- / диагностика: классическая / Od / Oy- / D _MBCS / Gm- / EHsc / RTC1 / MDd / GS / fp: точная / Zc: wchar_t / Zc: forScope / Zc: inline / Fo "Debug \" /Fd"Debug\vc141.pdb "/ Gd / TC / analysis- / FC / errorReport: очередь CMakeCCompilerId.c
link.exe / ERRORREPORT: QUEUE /OUT:".\CompilerIdC.exe "/ ОБЯЗАТЕЛЬНО: НЕТ / NOLOGO kernel32.lib user32.lib gins32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib / MANIFEST / MANIFESTUAC: "level = 'asInvoker' uiAccess = 'false'" / manifest: embed /PDB:".\CompilerIdC.pdb "/ SUBSYSTEM: CONID / 1 / DYNAMICBASE / NXCOMPAT /IMPLIB:".\CompilerIdC.lib "/ MACHINE: X86 / SAFESEH Debug \ CMakeCCompilerId.obj
Похоже, что cmake не распознал переменные окружения, или я пропустил некоторые важные шаги?
cmake версия 3.14.4
версия для студии visual 15.9.7