【发布时间】: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。
为什么默认没有ia32 或x86 选项?我只是无法创建新配置,因为该配置完全不是用户友好的。
任何人有为目标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