调试CMake项目创建

时间:2017-01-04 00:28:45

标签: msbuild cmake allegro5

我正面临一个特定问题,需要建议或调试方法。

我正在从源代码构建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 ..
msbuild ALLEGRO.sln
popd

错误:

  

" C:\用户\马修\回购\ allegro5_build \ ALL_BUILD.vcxproj" (默认   目标)(1) - >   " C:\用户\马修\回购\ allegro5_build \ ZERO_CHECK.vcxproj" (默认   目标)(2) - > (PlatformPrepareForBuild目标) - > C:\ Program Files   (86)\的MSBuild \ Microsoft.Cpp \ V4.0 \ V140 \ Microsoft.Cpp.Platform.targets(55,5):   错误MSB8020:Visual Studio 2010的构建工具(平台   无法找到工具集=' v100')。使用v100构建进行构建   工具,请安装Visual Studio 2010构建工具。或者,   您可以通过选择以升级到当前的Visual Studio工具   项目菜单或右键单击解决方案,然后选择"重新定位   溶液&#34 ;. [C:\用户\马修\回购\ allegro5   _build \ ZERO_CHECK.vcxproj]

工作指令:

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

我还尝试使用以下命令强制它进入Visual Studio 2015:

{{1}}

注意:我已经使用CMake构建了我自己的小项目,并使用CMake构建正确--build

对我来说,这似乎是一个疯狂的快板cmake构建。我搜索了源代码,试图找到对v100和MSVC_2010的引用,但没有发现任何问题。 我不想直接使用MSBuild作为解决方法,因为我想将allegro包含在ExternalProject_Add中,并且因为与使用cmake --build构建它而失败的原因相同。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我遇到了另一个类似的问题(Zipper,一个围绕minizip的C ++包装器)。我还特别使用了CMake和ExternalProject_Add。完全相同的错误。我花了很多时间研究这个问题。我在使用Gyp的另一个项目中发现了类似的问题(请查看“已知问题”部分)。对我来说,错误发生在安装目标期间。改变

  

BUILD_COMMAND $ {CMAKE_COMMAND} - 建造。 --config Release

  

BUILD_COMMAND $ {CMAKE_COMMAND} - 建造。 --config Release --target install     INSTALL_COMMAND“”

解决了这个问题。不确定是什么问题。看起来像CMake在ExternalProject中使用的默认安装命令以某种方式选择了错误的工具集......