#c #cmake
#c #cmake
Вопрос:
Я пытаюсь создать этот репозиторий, используя последнюю версию CMake GUI и Visual Studio 2019: https://github.com/cginternals/openll
После сборки и связывания всех зависимостей я не получаю ошибок в CMake, также сборка решения в VS2019 работает без каких-либо проблем, однако при создании цели установки я получаю следующую ошибку:
Severity Code Description Project File Line Suppression State
Error MSB3073 The command "setlocal
"C:Program FilesCMakebincmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal amp; call :cmErrorLevel %errorlevel% amp; goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd" exited with code 1. INSTALL C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets 149
и следующий вывод:
4>CMake Error at cmake_install.cmake:44 (file):
4> file INSTALL cannot find
4> "C:/Users/Johannes/source/repos/CGInternals/openll/ll-opengl/AUTHORS": No
4> error.
4>
4>
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: The command "setlocal
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: "C:Program FilesCMakebincmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: :cmEnd
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: endlocal amp; call :cmErrorLevel %errorlevel% amp; goto :cmDone
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: :cmErrorLevel
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: exit /b %1
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: :cmDone
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
4>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(149,5): error MSB3073: :VCEnd" exited with code 1.
4>Done building project "INSTALL.vcxproj" -- FAILED.
========== Rebuild All: 3 succeeded, 1 failed, 0 skipped ==========
В моей папке сборки ссылочная часть файла cmake_install.cmake
выглядит следующим образом (это строки с 35 по 57):
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xruntimex" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE FILE FILES "C:/Users/user/source/repos/CGInternals/openll/ll-opengl/build/VERSION")
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevx" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE FILE FILES "C:/Users/user/source/repos/CGInternals/openll/ll-opengl/openll-config.cmake")
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xruntimex" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE FILE FILES "C:/Users/user/source/repos/CGInternals/openll/ll-opengl/AUTHORS")
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xruntimex" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE FILE FILES "C:/Users/user/source/repos/CGInternals/openll/ll-opengl/LICENSE")
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xruntimex" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE FILE FILES "C:/Users/user/source/repos/CGInternals/openll/ll-opengl/README.md")
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xruntimex" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE DIRECTORY FILES "C:/Users/user/source/repos/CGInternals/openll/ll-opengl/data")
endif()
Что это значит? Ни в исходном коде, ни в папке сборки нет файла с именем «АВТОРЫ». Как я могу избавиться от этой ошибки?
Комментарии:
1. Поскольку файл cmake описывает АВТОРОВ как мета-файл проекта, и поскольку он соответствует README.md и ЛИЦЕНЗИЯ (которая действительно существует) возможно, лучшим решением было бы создать заполняющую версию этого файла. Вы даже можете указать себя в качестве автора!
2. @john хм, спасибо, я попробую!
3. @john Хорошо, я просто создал пустой файл AUTHORS и добавил его в папки, я также снова получил ту же ошибку с README и ЛИЦЕНЗИЕЙ, которая находится в базовой папке репозиториев, а не в «II-opengl», которую я использовал в качестве исходной папки для CMAKE. Я подозреваю, что это также было общей проблемой, однако мне пришлось выбрать эту папку в качестве источника, поскольку она содержит файлы конфигурации cmake. В любом случае, теперь проект установки построен без ошибок, так что все должно быть хорошо. Еще раз спасибо!