Что мне говорит CMake (ошибка в Windows)? - PullRequest
0 голосов
/ 16 сентября 2018

Я не считаю себя новичком в CMake, но не могу заставить его работать на более новой машине с Windows, которую я приобрел. Генератор only , который работает для меня, является настоящим генератором проектов Visual Studio (например, «Visual Studio 14 2015 Win64»). Я пробовал пару последних версий CMake (3.12.2, 3.10.3) и всегда получаю следующее, когда пробую другой генератор (NMake Makefiles JOM, NMake Makefiles, CodeBlocks - NMake Makefiles и т. Д.). Я должен добавить, что я запускаю эту командную строку в окне командной строки Native Tools VS2015 x64, открытом как администратор.

D:\Projects\build-QWar-newest>cmake -G "NMake Makefiles JOM" ../QWar

Журнал ошибок:

Determining if the C compiler works failed with the following output:
Change Dir: D:/Projects/build-QWar-newest/CMakeFiles/CMakeTmp

Run Build Command:"jom" "/NOLOGO" "cmTC_8b88c\fast"
jom: parallel job execution disabled for Makefile

    C:\Qt\Tools\QtCreator\bin\jom.exe -f CMakeFiles\cmTC_8b88c.dir\build.make /nologo -L CMakeFiles\cmTC_8b88c.dir\build

Building C object CMakeFiles/cmTC_8b88c.dir/testCCompiler.c.obj

    C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe @C:\Users\Rich\AppData\Local\Temp\testCCompiler.c.obj.19968.0.jom

testCCompiler.c

Linking C executable cmTC_8b88c.exe

    "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_8b88c.dir --manifests  -- C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\link.exe /nologo @CMakeFiles\cmTC_8b88c.dir\objects1.rsp @C:\Users\Rich\AppData\Local\Temp\cmTC_8b88c.exe.19968.375.jom

MT: command "mt /nologo /manifest CMakeFiles\cmTC_8b88c.dir/intermediate.manifest /out:CMakeFiles\cmTC_8b88c.dir/embed.manifest /notify_update" failed (exit code 0x0) with the following output:
The system cannot find the file specifiedjom: D:\Projects\build-QWar-newest\CMakeFiles\CMakeTmp\CMakeFiles\cmTC_8b88c.dir\build.make [cmTC_8b88c.exe] Error 2

jom: D:\Projects\build-QWar-newest\CMakeFiles\CMakeTmp\Makefile [cmTC_8b88c\fast] Error 2

Это простой проект - вот CMakeLists.txt из D: \ Projects \ QWar:

cmake_minimum_required(VERSION 3.0)

project(QWar)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

find_package(Qt5Core CONFIG REQUIRED)

add_executable(${PROJECT_NAME}
    main.cpp
    Card.cpp
    Deck.cpp
    Player.cpp
    Round.cpp
    Game.cpp)

target_link_libraries(${PROJECT_NAME} Qt5::Core)

РЕДАКТИРОВАТЬ: переформатирование журнала ошибок

Я не уверен, что я делаю неправильно. Я получил это для работы со старыми версиями CMake, на самом деле у меня есть другая машина с Qt5.7 / CMake3.6.1, и то, что я пробую выше, работает.

1 Ответ

0 голосов
/ 17 сентября 2018

Решение, благодаря Грегору из kitware, состоит в том, чтобы убедиться, что mt.exe находится в системном пути.Он поставляется с Windows SDK, который устанавливается отдельно от Visual Studio.

Приведенная выше ошибка специально не вызывает mt как отсутствующий файл.После запуска cmake с -debug-trycompile я мог запустить временную сборку самостоятельно, и ошибка стала более понятной.Без использования -debug-trycompile, если тест компилятора не пройден, он удаляет временные файлы, созданные по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...