CMake Не могу найти MSBuild.exe для VS 14 2015 - PullRequest
0 голосов
/ 19 января 2019

Я строю новый проект с использованием предварительно скомпилированных библиотек в Visual Studio 14 2015 win64. Поэтому, когда я настраиваю свой проект Cmake, я выбираю этот компилятор, но получаю ошибку:

CMake Error at CMakeLists.txt:2 (project):
Failed to run MSBuild command:
MSBuild.exe
to get the value of VCTargetsPath:
Specified file is not found

Почему Cmake не может найти местоположение этого компилятора?

У меня сообщество Visual Studio 2017, и я установил дополнение для Visual Studio 14 2015 win64. Я уже могу заставить свое решение работать, настроив мой проект с Visual Studio 15 2017 win64, а затем вручную переключиться на 2015.

Что я должен сделать для Cmake, чтобы сделать это напрямую с компилятором VS14 2015?

1 Ответ

0 голосов
/ 20 января 2019

Оболочка разработки VS скрыта в меню «Пуск» (Visual Studio 2017->Visual studio Tools->VC), и есть несколько вариантов на выбор.

Затем вы можете использовать командную строку для запуска cmake -G "Visual Studio 14 2015 Win64".

Если это будет работать или нет, я не совсем уверен, потому что генератор будет искать ключи реестра для «Visual Studio 14 2015», чтобы определить путь к правильному msbuild. Но он не установлен, потому что вы используете visual studio community 2017, который работает совершенно иначе.

Поэтому, когда cmake не удастся найти msbuild для VS14, по умолчанию будет указано то, что находится на пути, и это будет msbuild для VS 2017.

Именно тогда вы узнаете, совместимо ли дополнение с cmake VS14 проектами и наборами инструментов.

Может быть, надстройка - это просто набор инструментов VS14. В этом случае вы хотите сгенерировать проект VS17 и использовать опцию -T, чтобы использовать набор инструментов VS14.

Также Visual Studio и CMake ссылаются на msbuild как инструмент для сборки. Опция -T - выбрать набор инструментов платформы, который является версией используемого компилятора.

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