《自制编译器》安装cbc遇到的问题以及解决的方法

最近在学习编译原理内容,找到了一本不错的书,自制编译器。相对于龙书,这本书的更加的讲述的更加的接地气。
下面是在第一章安装cbc编译器时遇到的问题。linux

这里使用的是32位的ubuntu16.04系统,64位的教程安装教程,该编译器使用的是的x86的指令集。树莓派使用的为armhl,没法适用,想使用树莓派的小伙伴无望了(心疼本身1秒)git

按照书上的连接,下载cbc的编译器,解压后版本为cbc-1.0。而后按照书上安装的步骤github

sudo ./install.sh

显示下面的信息web

prefix=/usr/local/cbc
mkdir -p /usr/local/cbc/bin
install -m755 bin/cbc /usr/local/cbc/bin
mkdir -p /usr/local/cbc/lib
cp lib/cbc.jar lib/libcbc.a /usr/local/cbc/lib
rm -rf /usr/local/cbc/import
cp -r import /usr/local/cbc/import
cbc successfully installed as /usr/local/cbc/bin/cbc

而后继续按照书上的步骤进行cbc hello.cb,可是显示cbc不存在。ubuntu

须要进行下面的操做,cbc才可以正常的使用,此处参考 ,可是按照这个教程还是不可行。svg

下面为查阅相关的方法,解决的方案。学习

进行软链接操做

sudo ln -s [具体的位置]/cbc-1.0/bin/cbc   /usr/local/bin/cbc

执行命令cbc hello.cb,出现下面的错误code

/usr/bin/ld: cannot find /usr/lib/crt1.o: No such file or directory
/usr/bin/ld: cannot find /usr/lib/crti.o: No such file or directory
cbc: error: /usr/bin/ld failed. (status 1)
cbc: error: compile error

复制crt*文件(若是没有出现这样的错误,可无视)

经过查找,发现crt*文件位于/usr/lib/i386-linux-gnu文件夹下,因此xml

sudo cp /usr/lib/i386-linux-gnu/crt*  /usr/lib/

cbc hello.cb完成