Cbコンパイラのインストールと使用-「自作コンパイラ」
Cbコンパイラをダウンロードする
- ウェブサイト:http://www.ituring.com.cn/book/1308、ダウンロードをクリックし、右側の本をダウンロードしてcbc-1.0.tar.gzをダウンロードします。
Cbコンパイラをインストールする
-
cbc-1.0.tar.gzを仮想マシンにコピーして解凍します。
-
仮想マシンに対するroot権限がある場合は、cbcフォルダーに直接移動して、スクリプトファイル./install.shを実行します。
tar xzf cbc-1.0.tar.gz cd cbc-1.0 su ./install.sh
-
仮想マシンでroot権限を持っていない場合、またはroot権限でインストールしたくない場合は、cbcフォルダーに入った後、最初にinstall.shファイルを
prefix="${1:-/usr/local/cbc}"
変更し、最初の行をアクセス可能なディレクトリに変更します。例prefix="/home/IC/cbc"
、スクリプトファイルを実行します。 -
スクリプトの実行後、cbcは対応するフォルダーにインストールされています。
Cbコンパイラをテストします
-
Cbプログラムファイルhello.cbを記述します。
import stdio; int main (int argc,char **argv){ printf("Hello, World!\n"); return 0; }
-
コンパイラを使用してプログラムをコンパイルするには、cbcの場所を指定する必要があります。
/home/IC/cbc/bin/cbc hello.cb
-
コンパイルするときエラーを報告する、エラーメッセージは次のとおりです:(プログラムにエラーがないことを確認することを前提として)
hello.s: Assembler messages: hello.s:9: Error: suffix or operands invalid for `push' hello.s:12: Error: suffix or operands invalid for `push' hello.s:19: Error: suffix or operands invalid for `pop' cbc: error: as failed. (status 1) cbc: error: compile error
-
解決策、私のシステムは64ビットで、アセンブリコードは32ビットなので、ブログを参照してください:https://blog.csdn.net/jackailson/article/details/82192273?utm_source = blogxgwz6
as hello.s -o hello.o gcc hello.o -o hello ./hello
-
まだ実行されていますエラーを報告する、エラーメッセージは次のとおりです。
Segmentation fault
-
Cbcが古すぎて、新しいマシンには適用できないためです。解決するのは簡単ではありません。時間をかけて穴を埋めてください。