这是一个基于lex与yacc的C-minus的编译器,由.c代码生成.asm汇编代码
在构建之前,请先使用lex与yacc生成词法分析与文法分析文件
./cminus.sh
接着使用cmake进行构建
cd build
cmake ..
make
构建完毕,即在build文件夹中生成cminus文件,即为我们的C-minus语言编译器
首先进行编译,以生成x86汇编代码与语法树,命令格式如下
cminus 'sourcefile' -o 'outputfile'
默认源文件为test/test.c,默认输出文件为output.asm
nasm -f elf output.asm
#使用nasm -f elf -g -F stabs output.asm -l output.lst以获得调试信息
gcc –m32 'outputfile' –o 'outputexe'
仅可在Linux系统上运行,请确保已经安装 gcc-multlib
Ubuntu下使用
sudo apt-get install gcc-multilib
进行安装