CMAKE 3.16 не может нормально работать Экземпляр Visual Studio - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть проект cmake, который использует V C 2017 Pro. Я успешно использовал этот cmake в прошлом. Теперь вернемся к работе над проектом, и когда я вызываю cmake- gui и нажимаю Configure, я получаю следующую ошибку:

CMake Error at CMakeLists.txt:99 (enable_language):
  Generator

    Visual Studio 15 2017

  could not find specified instance of Visual Studio:

    D:/Microsoft Visual Studio/2017/Professional


Configuring incomplete, errors occurred!
See also "D:/OpenCV/OpenCV/build/CMakeFiles/CMakeOutput.log".
See also "D:/OpenCV/OpenCV/build/CMakeFiles/CMakeError.log".

Обратите внимание, что каталог, указанный выше для VS, является правильным. Я просмотрел много постов и проверил все, что могу найти, что, кажется, связано с этой проблемой, но не радует. Я использовал procmon для проверки доступа к реестру и файлам с помощью cmake, когда нажимаю кнопку «Настроить», но никаких подсказок не обнаружено.

Кажется, что Cmake знает путь к файлам VS и cmakelists.txt, файлам cmakecache.txt и cmakevars.txt, а также файлам cmakelists.txt и cmakevars.txt. у всех есть правильные пути, насколько я могу определить. Я проверил файлы, которые должны присутствовать, и права доступа к каталогам ... все, о чем я могу думать, но не повезло.

Наконец, файлы cmakeerror.log и cmakeoutput.log не изменяются при запуске команды configure, которая может быть нормальным для этой ошибки, но кажется странным.

Я не являюсь обычным пользователем cmake, но когда я настроил свой проект примерно на 3 месяца go, я смог сгенерировать проект и VS скомпилировал его успешно. Я понятия не имею, что изменилось, поскольку с тех пор не произошло никаких изменений в cmake или VS.

Потянув меня за волосы ...

1 Ответ

0 голосов
/ 29 апреля 2020

Получается, что мой экземпляр VS 2017 думал, что идет обновление. Возможно, это было перенесено из более ранней попытки обновления, для которой не хватило места на диске. Хотя я отменил это обновление и вышел из строя, но установщик VS пометил мой экземпляр как «выполняемое обновление», и я не знал об этом. Теперь vswhere работал, а сама VS работала просто отлично, но любой процесс, который cmake делает для обнаружения экземпляра VS, не удался из-за этого состояния «в процессе». Я перезапустил обновление VS, которое завершилось успешно, и после этого cmake был счастлив.

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