自制编译器——cbc安装后使用出问题

自制编译器——cbc安装后使用出问题

记录一下自己在github上的一个回答,详细安装步骤可以看绝云大师的github
安装详解

问题描述:

kim@kim-virtual-machine:~/桌面$ cbc -Wa,"–32" -Wl,"-melf_i386" hello.cb
/usr/bin/ld: 找不到 /usr/lib32/crt1.o: 没有那个文件或目录
/usr/bin/ld: 找不到 /usr/lib32/crti.o: 没有那个文件或目录
/usr/bin/ld: 当搜索用于 /usr/lib/x86_64-linux-gnu/libc.so 时跳过不兼容的 -lc
/usr/bin/ld: 当搜索用于 /usr/lib/x86_64-linux-gnu/libc.a 时跳过不兼容的 -lc
/usr/bin/ld: 找不到 -lc
/usr/bin/ld: 找不到 /usr/lib32/crtn.o: 没有那个文件或目录
cbc: error: /usr/bin/ld failed. (status 1)
cbc: error: compile error

问题解决:

问题已解决!
有需要的朋友可以看一下:
由于是linux新手而且在网上也没找到消息所以我就一步步解决问题:

1.找不到crt文件

/ usr / bin / ld:找到/usr/lib32/crt1.o:没有那个文件或目录
/ usr / bin / ld:找到/usr/lib32/crti.o:没有那个文件或目录
首先通过locate crt1.o找到crt文件的位置
/usr/lib/x86_64-linux-gnu/crt1.o
cd /usr/lib/x86_64-linux-gnu 后 发现crt文件都在这个目录下,再执行sudo cp /usr/lib/x86_64-linux-gnu/crt /usr/lib32/将需要的crt*文件复制到缺失的lib32中

2.兼容性问题

/ usr / bin / ld:当搜索使用/ usr / lib / x86_64-linux-gnu /libc.so时跳过不兼容的-lc
/ usr / bin / ld:当搜索使用/usr/lib/x86_64-linux-gnu/libc.a时跳过不兼容的-lc
/ usr / bin / ld:找不到-lc
原因:系统缺失32 位的静态库和动态库库文件
执行命令:sudo apt-get install build-essential module-assistant gcc-multilib g+±multilib

综上解决问题。
还有问题的话大家可以在下面留言

附上大佬的简化命令方法:原文地址

新建文件命名为cbc写入以下内容,并添加可执行权限,再建立软链接到/usr/local/bin/cbc64即可

#!/bin/bash
cbc -Wa,"–32" -Wl,"-melf_i386" $1 -L /usr/lib32
编译命令便可简化为
cbc64 test/hello.cb
等价于
cbc -Wa,"–32" -Wl,"-melf_i386" test/hello.cb -L /usr/lib32

脚本说明:-L参数是指定库所在位置,/usr/lib32是我所用系统Manjaro(ArchLinux系)32位库所在的路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值