我正面临一个特定问题,需要建议或调试方法。
我正在从源代码构建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构建它而失败的原因相同。
我该如何解决这个问题?
答案 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中使用的默认安装命令以某种方式选择了错误的工具集......