将lcc42.zip解压缩,可以看到makefile.nt这个文件。
在命令行执行:
nmake /f makefile.nt
则显示如下内容,提示可选择编译哪个模块。
make all rcc lburg cpp lcc bprint liblcc triple clean clobber
使用all参数进行编译:
nmake /f makefile.nt all
生成结果都被放在的当前驱动器的根目录。
lcc是主程序负责调用 cpp rcc ml
cpp是预处理器将.c中的宏及预处理进行展开,生成.i文件。
rcc 将.i文件编译成汇编代码。
最后调用ml (微软汇编器)生成平台相关代码。
如果想看到完整的lcc运行还需要一个ml.exe。
etc/win32.c中第8行:
#define LCCDIR "//progra~1//lcc//4.1//bin//"
所有的可执行文件都在按这个路径平存放(cpp.exe rcc.exe)。
如果想在VC中加入rcc相关的源代码可看makefile.nt中的29行:
RCCOBJS=
这样就很容知道有哪些文件需要加到项目里。
你会注意到,在根目录下生成了如下几个.c源文件,
mips.c
dagcheck.c
alpha.c
sparc.c
x86.c
x86linux.c
实际上它们是与src目录下这6个.md文件相对应
alpha.md
dagcheck.md
mips.md
sparc.md
x86.md
x86linux.md
lcc的retargetable也正是体现在这里。