小小小幸运 发表于 2024-7-30 02:30:41

关于64位Ubuntu要求在32位下运行c程序操纵

如果你在刚搭建好的c语言环境中去运行c语言
这个代码在c90和c99两种不同的语言标准下运行是完全不一样的 (后文有不同语言标准的运行效果)
#include<stdio.h>
void main (){
int x=-1;
unsigned u=2147483648;
printf("x=%u=%d\n",x,x);
printf("u=%u=%d\n",u,u);
if(-2147483648<2147483647)
          printf("-2147483648<2147483647 is true\n");
else
          printf("-2147483648<2147483647 is false\n");
if(-2147483648-1<2147483647)
          printf("-2147483648-1<2147483647\n");
else if (-2147483648-1==2147483647)
          printf("-2147483648-1==2147483647\n");
else
          printf("-2147483648-1>2147483647\n");

}
$ gcc -m32 hello.c -o hello32 -std=c90 在32位下运行c语言文件,如果在64位的体系之下,直接输入指令会出现这样的画面~~https://i-blog.csdnimg.cn/blog_migrate/86e34167d57c3550ba106c7c94c0dd5e.png
 这个时候我们需要下载两个包:
    $ sudo apt-get install build-essential module-assistant
    $ sudo apt-get install gcc-multilib g++-multilib https://i-blog.csdnimg.cn/blog_migrate/47a21a827459e3ed3a2f864344a582c8.png
 如果这个过程中出现了未知的错误,可以选择换源可能会解决这些问题
换源可以参考:跳转链接
安装完这两个包就可以成功的用32编译啦,https://i-blog.csdnimg.cn/blog_migrate/175cc919fbcebbf0d948c78b1c91e604.png
c90语言标准
https://i-blog.csdnimg.cn/blog_migrate/ef50659287c71c6479b41c68380c4537.png
 c99标准https://i-blog.csdnimg.cn/blog_migrate/39ec46d23642a4b8481e29d03765f31d.png
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 关于64位Ubuntu要求在32位下运行c程序操纵