vscode cmake 编译32位程序

vscode cmake 编译32位程序

为什么要用cmake

vscode中的C/C++插件直接支持的只是最简单的单文件编译、运行和调试,要管理大的项目,或者生成库,C/C++插件不能直接支持,需要开发者利用vscode的task功能,结合脚本/Makefile等工具实现,要支持多平台多配置比较麻烦,cmake则提供了这些便利,支持多平台、多配置、多目标。

系统需求

  • C/C++ 开发工具,例如VC或gcc/g++
  • cmake
  • vscode + C/C++ extension pack (包含了C/C++插件和CMake Tools插件)

Windows + VC

64位window 10系统下,使用vscode配合cmake插件vc编译器编译可执行程序或库时,无需从“Developer Command Prompt for VS 2017”命令行启动vscode,在选择工具包时有四个选择,因为windows下即可以运行32位编译器,也可以运行64位编译器,而每个版本的编译器又都可以生成32位程序或64位程序。

kit编译器版本生成的程序版本
adm6464位64位
adm64_x8664位32位
x8632位32位
x86_adm6432位64位

可以看出 adm64_x86 和 x86_adm64 是交叉编译,如果安装了更多的平台支持可能会有更多的选项。

当选择了不同的工具,使输出程序在不同的平台之间发生了切换,configure时会提示类似下面的错误,可以使用CMake: Delete Cache and Reconfigure清除缓存,重新执行configure。

[cmake] CMake Error: Error: generator platform: win32
[cmake] Does not match the platform used previously: x64
[cmake] Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

如果有类似下面的错误,可能是因为从“Developer Command Prompt for VS 2017”命令行启动的vscode,这限制了使用的编译器版本只能为64位(或32位),退出,直接从桌面或开始菜单启动vscode即可。

[cmake] CMake Error at CMakeLists.txt:67 (project):
[cmake]   Generator
[cmake] 
[cmake]     Visual Studio 15 2017
[cmake] 
[cmake]   given toolset specification
[cmake] 
[cmake]     host=x86
[cmake] 
[cmake]   that contains invalid field 'host=x86'.
[cmake] 
[cmake] 
[cmake] Configuring incomplete, errors occurred!

Linux + gcc/g++

现在大多数桌面Linux版本都是64位系统,要在这样的系统上编译32位程序首先要安装编译器的32位支持,对于ubuntu系统来说,这个包是gcc-multilib/g++-multilib

sudo apt install g++-multilib

要编译32位程序则要依赖cmake在编译命令中添加32编译选项-m32,具体方法参考 https://blog.csdn.net/FlushHip/article/details/114677775

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞花丝雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值