最近在學習編譯原理內容,找到了一本不錯的書,自制編譯器。相對於龍書,這本書的更加的講述的更加的接地氣。
下面是在第一章安裝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
完成