深入理解C语言-09 编译器介绍

本文介绍了小型编译器TinyCC,重点讨论了其在Linux环境下的便捷性和在Windows下的编译问题。内容包括TinyCC的主要源文件、配置过程以及遇到的VC兼容性问题。尽管尝试了配置运行库和解决链接问题,但最终因难度而暂时放弃,期待未来有更深入的研究。
摘要由CSDN通过智能技术生成

比较小型的编译器是TinyCC(http://bellard.org/tcc/


linux下编译非常方便。但gdb使用起来没有Visual Studio方便,特意花了一点时间,整理了一个VC工程。


TinyCC里面和i386/PE相关的主要是以下文件:

config.h 配置
elf.h  ELF格式相关,由于代码写得不是太好,PE也要用,不能删除
i386-asm.c i386相关汇编生成
i386-asm.h
i386-gen.c i386相关汇编生成
i386-tok.h i386相关汇编生成
include  外部头文件
libtcc.c   主要实现函数库
libtcc.h  
stab.def  gcc相关
stab.h   gcc相关

tcc.c   main函数,没啥东西
tcc.h  
tccasm.c   
tccelf.c  ELF相关,PE也用,不能删
tccgen.c 中间代码生成
tccpe.c PE格式生成
tccpp.c  主要词法语法分析代码,重点学习对象
tccrun.c 动态执行相关
tcctok.h  关键字,看这个文件就能很清楚明白gcc有哪些扩展关键字


为了编译通过,config.h下需要加以下宏定义:

#define TCC_VERSION ""
#define TCC_TARGET_I38

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值