最近在学习编译原理内容,找到了一本不错的书,自制编译器。相对于龙书,这本书的更加的讲述的更加的接地气。
下面是在第一章安装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*
文件位于/usr/lib/i386-linux-gnu
文件夹下,因此xml
sudo cp /usr/lib/i386-linux-gnu/crt* /usr/lib/
cbc hello.cb
完成