2017-01-04 4 views
2

Ich stehe vor einem bestimmten Problem, und möchte einen Rat oder eine Möglichkeit, es zu debuggen.Debug CMake-Projekt Erstellung

Ich baue die Allegro-Bibliothek aus der Quelle, mit: Windows 10, CMake und Visual Studio 2015 Build-Tools (Msbuild).

. Quelle: https://github.com/liballeg/allegro5

Das Problem ist, dass, wenn ich laufen `Cmake --build‘ Ich bekomme Fehler, die besagen, dass das v100-Toolset nicht installiert ist, aber ich mache es für Visual Studio 2015 und nicht 2010. Wenn ich die Lösung öffne oder msbuild direkt ausführe, baut es perfekt.

Gibt es einen Weg zum Debug CMake, der mir helfen wird, das Problem zu sehen?

Failing Befehle:

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

Fehler:

"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]

Arbeits Befehle:

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

Ich habe auch versucht, es zu Visual Studio 2015 mit Befehlen zu zwingen, wie:

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

Hinweis: Ich habe mein eigenes kleines Projekt mit CMake gebaut und Builds mit richtig CMake

--build

Für mich ist es wie etwas verrückt mit dem allegro Cmake Build scheint. Ich habe die Quelle durchsucht, um nach Verweisen auf v100 und MSVC_2010 zu suchen, habe aber nichts gefunden. Ich möchte MSBuild nicht direkt als Workaround verwenden, weil ich allegro mit ExternalProject_Add einbeziehen möchte und dies aus dem gleichen Grund fehlschlägt, wie es mit cmake --build erstellt wird.

Wie kann ich dieses Problem lösen?

+0

Mögliches Duplikat von [Debugging CMakeLists.txt] (http://stackoverflow.com/questions/22803607/debugging-cmakelists-txt) – usr1234567

+0

Könnte hilfreich sein: http://Stackoverflow.com/a/38869455/2799037 – usr1234567

+0

Wenn Sie davon überzeugt sind, dass Allegro sich auf v100-Tools bezieht (warum sollten sie das tun?), Dann gehen Sie mit dem 'ExternalProject_Add'-Ansatz und suchen Sie nach Allegro cmake Dateien. Ich finde https://crascit.com/2016/10/18/test-fixtures-with-cmake-ctest/, um eine saubere Möglichkeit zu bieten, die externe Projektfunktion zu nutzen. – NameRakes

Antwort

1

Ich hatte ein ähnliches Problem mit einer anderen Bibliothek (Zipper, ein C++ Wrapper um Minizip). Ich benutzte auch CMake und ExternalProject_Add insbesondere. Genau der gleiche Fehler. Ich habe viel Zeit damit verbracht, das Problem zu erforschen. Ich habe ein ähnliches Problem mit einem anderen Projekt gefunden, das Gyp verwendet (sehen Sie sich den Abschnitt "Bekanntes Problem" an). Bei mir trat der Fehler während des Installationsziels auf. Ändern

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

zu

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

das Problem behoben. Nicht sicher, was das Problem ist. Es sieht so aus, als ob der Standardinstallationsbefehl, den Cmake in einem ExternalProject verwendet, das falsche Toolset irgendwie verwendet ...

+0

Danke für diese Information! Dies hat mein Problem nicht gelöst, da es sich nicht im Installationsschritt, sondern im Build-Schritt befindet. Dies deutet jedoch darauf hin, dass etwas mit CMake, Visual Studio 2015 und/oder dem Aufbau von Windows 10 nicht stimmt. Eine andere Gruppe mit demselben Problem: https://github.com/nodejs/node-gyp/issues/679 – MrD