解决《自制编译器》64位CentOS下cbc编译执行成功

搞了两晚上,终于hello了\(^o^)/,先上图

简单说:

1、编译、汇编源文件

将/usr/bin/as重命名

mv /usr/bin/as /usr/bin/as_bk

新建/usr/bin/as,并输入下面这样的内容

vi /usr/bin/as

*******************************

#!/bin/sh

 

/usr/bin/as_bk --32 $*

*******************************

赋予执行权限

chmod 755 /usr/bin/as

然后编译cbc/test里的hello.cb

​cbc /usr/local/cbc-1.0/test/hello.cb

之后报错信息不管,只要能在目录下看到

hello.s    hello.o就ok

 

2、安装32位函数库(我的64位centos里面没有32位库)

参照http://blog.csdn.net/liushihuidfg/article/details/46442209

搜索可用的glibc软件包

[root@localhost ~]# yum search glibc
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.sina.cn
 * extras: mirrors.sina.cn
 * updates: mirrors.cqu.edu.cn
================================= N/S matched: glibc =================================
glibc-common.x86_64 : Common binaries and locale data for glibc
compat-glibc.x86_64 : Compatibility C library
compat-glibc-headers.x86_64 : Header files for development using standard C libraries.
glibc.i686 : The GNU libc libraries
glibc.x86_64 : The GNU libc libraries
glibc-devel.i686 : Object files for development using standard C libraries.
glibc-devel.x86_64 : Object files for development using standard C libraries.
glibc-headers.x86_64 : Header files for development using standard C libraries.
glibc-static.i686 : C library static libraries for -static linking.
glibc-static.x86_64 : C library static libraries for -static linking.
glibc-utils.x86_64 : Development utilities from GNU C library
kdesdk-kmtrace.x86_64 : Assist with malloc debugging using glibc's "mtrace"
                      : functionality
kernel-headers.x86_64 : Header files for the Linux kernel for use by glibc
latrace.i686 : LD_AUDIT feature frontend for glibc 2.4+
latrace.x86_64 : LD_AUDIT feature frontend for glibc 2.4+

  名称和简介匹配 only,使用“search all”试试。
[root@localhost ~]# yum install glibc.i686

安装32位的glibc.i686

 

3、建立软连接(非必须)

ln -sv /usr/lib/libc.so.6 libc.so

因为每次ld的时候系统默认去找libc.so,这个配置到哪里的不知道,简单点就直接软连接

 

4、最后一步:链接执行

还是嘴儿http://blog.csdn.net/liushihuidfg/article/details/46442209

ld -melf_i386 --dynamic-link /usr/lib/ld-linux.so.2 -lc -L /usr/lib -ohello hello.o

最后执行

​​./hello

 

 

完结撒花\(^o^)/

转载于:https://my.oschina.net/u/235445/blog/857248

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值