【问题标题】:Debug CMake Project Creation调试 CMake 项目创建
【发布时间】:2017-01-04 00:28:45
【问题描述】:

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

我正在从源代码构建 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”(默认 目标)(1)-> “C:\Users\matthew\repos\allegro5_build\ZERO_CHECK.vcxproj”(默认 目标)(2)->(PlatformPrepareForBuild 目标)-> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(55,5): 错误 MSB8020:Visual Studio 2010 的构建工具(平台 工具集 = 'v100') 找不到。使用 v100 构建 工具,请安装 Visual Studio 2010 构建工具。或者, 您可以通过选择升级到当前的 Visual Studio 工具 项目菜单或右键单击解决方案,然后选择“重新定位 解决方案”。 [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 正确构建

对我来说,allegro cmake 构建似乎有些疯狂。我已经搜索了源代码以尝试找到对 v100 和 MSVC_2010 的引用,但没有发现任何值得关注的问题。 我不想直接使用 MSBuild 作为解决方法,因为我想在 ExternalProject_Add 中包含 allegro,并且失败的原因与使用 cmake --build 构建它的原因相同。

我该如何解决这个问题?

【问题讨论】:

标签: msbuild cmake allegro5


【解决方案1】:

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

BUILD_COMMAND ${CMAKE_COMMAND} --build 。 --config 发布

BUILD_COMMAND ${CMAKE_COMMAND} --build 。 --config 发布 --target 安装 INSTALL_COMMAND ""

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

【讨论】:

  • 感谢您提供此信息!这并没有解决我的问题,因为它不在安装步骤中,而是在构建步骤中。但是,这表明 CMake、Visual Studio 2015 和/或在 Windows 10 上构建存在问题。另一组有相同问题:github.com/nodejs/node-gyp/issues/679
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 2020-03-25
  • 2022-09-25
  • 1970-01-01
相关资源
最近更新 更多