2017-01-04 6 views
2

У меня возникла конкретная проблема и вы хотите получить консультацию или способ ее отладки.Создание проекта Debug CMake

Я строю библиотеку Allegro из исходного кода, используя: инструменты для создания Windows 10, CMake и Visual Studio 2015 (msbuild).

. Источник: https://github.com/liballeg/allegro5

Проблема заключается в том, что, когда я бегу `CMake --build» Я получаю ошибки, заявляя, что набор инструментов v100 не установлен, но я делаю это для Visual Studio 2015, а не в 2010 году. Если я открою решение или запустим msbuild напрямую, он будет отлично создан.

Есть ли способ отладки CMake, который поможет мне увидеть проблему?

непрохождения команды:

mkdir _build 
pushd _build 
cmake.exe .. 
cmake --build . 
popd 

Ошибка:

"C:\Users\matthew\repos\allegro5_build\ALL_BUILD.vcxproj" (default target) (1) -> "C:\Users\matthew\repos\allegro5_build\ZERO_CHECK.vcxproj" (default target) (2) -> (PlatformPrepareForBuild target) -> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(55,5): error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, please install Visual Studio 2010 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [C:\Users\matthew\repos\allegro5 _build\ZERO_CHECK.vcxproj]

Рабочие команды:

mkdir _build 
pushd _build 
cmake.exe .. 
msbuild ALLEGRO.sln 
popd 

Я также попытался заставить его Visual Studio 2015 с командами, как:

cmake.exe -G "Visual Studio 14" .. 

Примечание: Я построил свой собственный небольшой проект с CMake и строит правильно с помощью CMake --build

мне кажется, что что-то сумасшедшее с аллегро CMake строить. Я искал источник, чтобы попытаться найти ссылки на v100 и MSVC_2010, но не нашел ничего для беспокойства. Я не хочу напрямую использовать MSBuild для работы, потому что я хочу включить аллегро с ExternalProject_Add, и это происходит по той же причине, что и его создание с помощью cmake -build.

Как я могу решить эту проблему?

+0

Возможный дубликат [Отладка CMakeLists.txt] (http://stackoverflow.com/questions/22803607/debugging-cmakelists-txt) – usr1234567

+0

Может быть полезно: http://stackoverflow.com/a/38869455/2799037 – usr1234567

+0

Если вы уверены, что Allegro ссылается на инструменты v100 (зачем они это делают?), Затем переходите к подходу 'ExternalProject_Add' и ищите Allegro cmake. Я обнаружил, что https://crascit.com/2016/10/18/test-fixtures-with-cmake-ctest/ является чистым способом использования функции внешнего проекта. – NameRakes

ответ

1

У меня была аналогичная проблема с другой библиотекой (Zipper, C++-оболочка вокруг minizip). Я также использовал CMake и ExternalProject_Add. Точная ошибка. Я потратил много времени на изучение проблемы. Я нашел аналогичную проблему с другим проектом, используя Gyp (см. Раздел «Известная проблема»). Для меня ошибка произошла во время установки. Изменение

BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release

в

BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release --target install INSTALL_COMMAND ""

исправили проблему. Не знаю, в чем проблема. Кажется, что команда установки по умолчанию использует CMake в ExternalProject, который каким-то образом выбирает неправильный набор инструментов ...

+0

Спасибо за информацию! Это не решило мою проблему, так как это не на этапе установки, а на этапе сборки. Тем не менее, это указывает на то, что это неправильно с CMake, Visual Studio 2015 и/или на основе Windows 10. Другая группа, имеющая такую ​​же проблему: https://github.com/nodejs/node-gyp/issues/679 – MrD

Смежные вопросы