免费注册 查看新帖 |

Chinaunix

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

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

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

论坛徽章:
0
发表于 2012-09-24 10:47 |显示全部楼层
编译绝对可以,运行应该不行。

论坛徽章:
0
发表于 2012-09-24 11:03 |显示全部楼层
编译可以(和其它交叉编译一样), 但是不能运行

论坛徽章:
0
发表于 2012-09-24 11:11 |显示全部楼层
回复 3# adam8157

怎么配置交叉编译环境???

在我的32位的操作系统上,环境如下
#gcc -v
Using built-in specs.
Target: i586-gnu-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --with-gxx-include-dir=/usr/include/c++/3.4.3 --enable-libgcj-multifile --enable-languages=c,c++,f95 --disable-libgcj --with-cpu=generic --host=i586-endian-linux
Thread model: posix
gcc version 4.1.2 20070626

安装了binutils-2.15, gcc-4.1-multilib-4.1.2-30.i386.rpm, libc6-amd64-2.11.3-4.i386.rpm ,libc6-dev-amd64-2.11.3-4.i386.rpm, lib64gcc1-4.4.5-9.i386.rpm

编译64位程序
# gcc -m64 -o hello_64 hello.c
hello.c:1: sorry, unimplemented: 64-bit mode not compiled in
还是不行

该怎么配置环境?

论坛徽章:
0
发表于 2012-09-24 11:12 |显示全部楼层
回复 2# 灌水菜鸟
怎么来配置编译环境??

   

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
发表于 2012-09-24 22:28 |显示全部楼层
没有必要吧

论坛徽章:
0
发表于 2012-09-28 16:02 |显示全部楼层
可以编译和运行64位程序。
由于交叉编译环境没搞出来,gcc编译64位程序也没能实现,所以采用了非常暴力的方法。
前提,将系统内核换成64位内核。下载对应系统的rpm,解压rpm,将文件复制到对应目录下,然后建立软链接ld-linux-x86-64.so.2,链接到64位的ld-2.3.4.so,libc.so.6、libdl.so.2做类似处理。编译的时候,可能包cc1找不到,在/usr/bin下建cc1连接到对应的gcc的cc1。这样就可以编译和运行。现在只是做了简单的程序编译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP