【Linux】Linux64 位环境下编译 32 位报错的解决办法
距离上次更新本文已经过去了 361 天,文章部分内容可能已经过时,请注意甄别
问题
如题,当我尝试在 wsl2 的 ubuntu 中使用 -m32
选项编译 32 位程序的时候,出现了下面的两种报错
plaintext
1 | ❯ g++ -m32 test.cpp -o test1 && ./test1 |
plaintext
1 | ❯ g++ -m32 test.cpp -o test1 && ./test1 |
解决
原因是当前缺少 32 位的开发库,需要安装
plaintext
1 | sudo apt install gcc-multilib g++-multilib libc6-dev-i386 -y |
安装后重试,编译成功。
plaintext
1 | ❯ g++ -m32 test.cpp -o test1 && ./test1 |
代码很简单,是一个打印指针大小的代码,在 32 位下指针大小是 4,64 位下指针大小是 8;
cpp
1 |
|
更多说明
在 linux 下可以使用下面的命令查看你的系统位数。
plaintext
1 | ❯ getconf LONG_BIT |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 慕雪的寒舍!
评论
表情图片预览
0 条评论
- 最新
- 最热
- 最早
- 作者
关闭评论
通知中心
「此时无声胜有声」
Artalk ErrorTypeError: Failed to fetch,无法获取评论列表数据
点击重新获取 | 打开控制台
点击重新获取 | 打开控制台