本文以编译gmake为例讲解如何使用tcc进行复杂一点的c代码的编译
1 简介
前面主要讲解了如何编译lua解释器,lua解释器的编译很简单也很容易理解.当然大部分c语言程序编译没那么简单,下面对前面的gmake程序进行编译.
2 gmake源码结构
首先打开之前tcc-busybox-for-win32\gmake文件夹,具体文件如下

主要有3个文件夹和3个文件,分别为
0.tcc-主要为编译所用的信息
lib-一些相关的c代码
src-主要源码文件夹
AUTHORS-作者信息
COPYING-自述文件
README-自述文件
其中最主要的是src文件夹.
3 初次编译
在tcc-busybox-for-win32文件下有一个makebox.bat其中包含了编译gmake的命令.经过分析编译指令改写为
::使用tcc 执行0.tcc/gmake.tcc.rsp文件编译内容
tcc @0.tcc/gmake.tcc.rsp
将tcc编程环境.bat复制到gmake文件夹下打开,输入上面指令,指令执行成功在上一级目录tcc-busybox-for-win32下面生成make.exe文件,其中@代表tcc编译信息从0.tcc目录下的gmake.tcc.rsp文件载入,该文件内容如下:
-o ../make.exe
-Wall
-D GMAKE_FOR_BUSYBOX
-I src
-I lib
-I src/w32/include
-D WINDOWS32
-D HAVE_CONFIG_H
-D HAVE_STDINT_H
-D HAVE_STRNICMP
-D HAVE_UMASK
-D WIN32_LEAN_AND_MEAN=
-D ftruncate=_chsize
-D _cdecl=
src/ar.c
src/arscan.c
src/commands.c
src/default.c
src/dir.c
src/expand.c
src/file.c
src/function.c
src/guile.c
src/hash.c
src/implicit.c
src/job.c
src/load.c
src/main.c
src/misc.c
src/output.c
src/read.c
src/remake.c
src/remote-stub.c
src/rule.c
src/signame.c
src/strcache.c
src/variable.c
src/version.c
src/vpath.c
src/w32/pathstuff.c
src/w32

最低0.47元/天 解锁文章
551

被折叠的 条评论
为什么被折叠?



