免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12941 | 回复: 9

[Linux] 32位系统能否编译、运行64位程序 [复制链接]

论坛徽章:
0
发表于 2012-09-23 11:59 |显示全部楼层
我的是CentOS 6.0 32位操作系统,已经把内核换成64位的,我想在上面安装64位glibc,然后安装64位gcc,然后编译和运行64位应用程序。用的是rpm包
我的问题是:
1.可以在32位系统上安装64位glibc和64位gcc吗?如果不行,为什么?
2.如果可以安装,那么可以利用之前安装的64位gcc和glibc,编译和运行64位应用程序嘛?(可以再32位系统上编译出64位程序)

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2012-09-23 13:54 |显示全部楼层
1,你没有64位编译器, 只能通过发行版本的RPM直接安装.
2,既然你系统是64的, 编译器和开发库也是64的, 应该是没问题的.

论坛徽章:
0
发表于 2012-09-23 14:39 |显示全部楼层
现在已经把内核换成64位的
#uname -a
Linux efw-1348206216.localdomain 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
但是应用层的还是32位,不知道这个怎么变
# getconf LONG_BIT
32

rpm在安装时,应该要检测操作系统的类型,然后和rpm包中的申明的系统类型匹配

我试过了,在换成64位内核的32位linux上安装64位的glibc-common rpm包,安装失败
命令:rpm -ivh glibc-common-2.5-81.el5_8.4.x86_64.rpm --nodeps --force
错误信息:“package glibc-common-2.5-81.el5_8.4.x86_64 is intended for a x86_64 architecture”
回复 2# linux_c_py_php


   

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2012-09-23 15:10 |显示全部楼层
母鸡, 去内核板块问问.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
发表于 2012-09-25 15:48 |显示全部楼层
回复 3# 冷秋风扫落叶


    RPM 这个问题改改 /usr/lib/rpm/rpmrc,把 x86_64 设成和 i686 兼容应该就可以了。

不过,你这个情况,还是重装个 64 位的系统更方便和保险。

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
发表于 2012-09-27 10:22 |显示全部楼层
32的系统运行64的程序会有问题吧?
编译的话,加个编译参数应该就行吧。
大牛指教。

论坛徽章:
0
发表于 2012-09-27 11:24 |显示全部楼层
  折腾啊

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
发表于 2012-09-27 12:34 |显示全部楼层
VIP_fuck 发表于 2012-09-27 10:22
32的系统运行64的程序会有问题吧?
编译的话,加个编译参数应该就行吧。
大牛指教。


编译和运行都是看情况的,大部分都是没有问题的。当然,运行的话前提是你的 CPU 是 64 位的,且内核支持 64 位程序的运行。

论坛徽章:
1
天秤座
日期:2014-03-25 15:12:56
发表于 2012-09-27 15:16 |显示全部楼层
32位系统是可以编译出64位的应用程序的,
32位的系统上安装一个64位的编译器,
但是64位的应用程序是一定不能运行在32位系统上的。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
发表于 2012-09-27 16:12 |显示全部楼层
palm008 发表于 2012-09-27 15:16
但是64位的应用程序是一定不能运行在32位系统上的。


这个看你怎么定义"32位系统“了。其实,只要 kernel 是 64 位的(或支持 64 位程序运行),有需要的动态库(包括 loader),就可以运行 64 位程序了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP