【问题标题】:How to build as an ia32 solution from visual studio using cmake如何使用 cmake 从 Visual Studio 构建 ia32 解决方案
【发布时间】:2020-02-03 17:31:01
【问题描述】:

我有一个使用cmake 的模块项目,配置如下:

cmake_minimum_required(VERSION 3.13)
project(app)

set(CMAKE_CXX_STANDARD 11)

add_library(app MODULE src/library.cpp src/library.h)

使用cmake .. -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release 生成解决方案后,我可以找到app.sln 解决方案。

我用Visual Studio 2019 打开它,然后单击按钮Local Windows Debugger。我还可以看到一个下拉菜单,其中包含值 x64 和一个项目 Configuration Manager

为什么默认没有ia32x86 选项?我只是无法创建新配置,因为该配置完全不是用户友好的。

任何人有为目标32 bits 程序编译库的想法吗?

编辑


我现在使用 cmake .. -G "Visual Studio 16 2019" -DCMAKE_GENERATOR_PLATFORM=x86 -DCMAKE_BUILD_TYPE=Release 编译,甚至无法加载项目(因为 Visual Studio 上缺少一些配置,这就是 IDE 所说的)

【问题讨论】:

  • 命令行cmake .. -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release有什么作用?我认为它会针对 Visual Studio 2015 兼容的编译器输出进行 x64 编译。 cmake.org/cmake/help/latest/generator/… 那么为什么不能用 x86 调试它呢?
  • 我最近换了最新的visual studio 16 2019,(去掉Win64)还是一样,找不到32位arch目标相关的东西
  • 我尝试使用set(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE x86),但没有任何反应:/
  • 从 VS 2019 版本的 cmake 文档 cmake.org/cmake/help/latest/generator/… 中可以看出,您只需要指定 cmake -G "Visual Studio 16 2019" -A Win32,我会尽可能简单地让 cmake做它的工作。不确定您在上一条评论中所说的“什么都没有发生”是什么意思。确实发生了一些事情,但是发生的事情不是您所期望或想要的。
  • 确实是 -A Win32 并与 -Thost=x86 相关联。现在工作谢谢

标签: c++ visual-studio cmake compilation cpu-architecture


【解决方案1】:

从 VS 2019 版本的 cmake documentation 看来,您只需要指定:

 cmake -G "Visual Studio 16 2019" -A Win32

我会让事情尽可能简单,让cmake 完成它的工作。

不确定您在上一条评论中所说的“什么都没有发生”是什么意思。确实发生了一些事情,但是发生的事情不是您所期望或想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    相关资源
    最近更新 更多