
使用TCC与TLIB编译链接OBJ及LIB文件的探索
下载需积分: 0 | 154KB |
更新于2024-08-04
| 168 浏览量 | 举报
收藏
"20160711_试验四V4.2_13邵温财 1"
本文档主要介绍了使用Tiny C Compiler (TCC) 编译C程序生成.OBJ文件以及如何利用TLIB.exe管理静态库(.LIB)文件的相关知识。
TCC是一个小型但功能齐全的C编译器,它能够在单个步骤中完成编译和链接的过程。当TCC默认处理C源文件(如a.c)时,它会执行以下两个阶段:
1. **编译阶段**:TCC将源代码转换为中间目标文件(如a.obj)。这个阶段创建的是未链接的机器码,包含了源文件中的所有函数和数据的定义。
2. **链接阶段**:TCC调用TLINK工具,将c0s.obj、cs.lib、emu.lib、maths.lib等库中的代码与a.obj合并,生成可执行的.exe文件。
要仅生成.OBJ文件而不进行链接,可以使用TCC的`-c`选项。例如,运行`tcc -c a.c`将生成a.obj,而不会生成.exe。检查文件夹,你会发现只有 OBJ 文件存在,没有可执行文件。
接下来,文档展示了如何尝试直接用TCC编译并链接包含未定义函数的源代码。例如,如果有一个main.c文件引用了未定义的f()函数,使用`tcc a.c`将会因为f()未定义而报错。这说明在C编程中,确保所有使用的函数都有正确的定义是非常重要的。
此外,文档提到了TC2.0工具集中的`TLIB.exe`,这是一个用于管理和创建静态库的工具。静态库是一组预编译的对象文件,可以在链接时插入到可执行文件中。`TLIB.exe`支持多种操作:
- `+`:将.OBJ文件添加到库中。
- `-`:从库中移除.OBJ文件。
- `*`:从库中提取.OBJ文件但不删除。
- `-+`或`+-`:替换库中现有的.OBJ文件。
- `-*`或`--`:从库中提取并删除.OBJ文件。
- `/C`:设置大小写敏感标志,通常不常用。
- `/E`:创建扩展字典,加快大库文件的链接速度。
使用`TLIB.exe`时,需要指定库名,以及可选的参数和列表文件。例如,`TLIB mylib.lib + myobj.obj`将myobj.obj添加到mylib.lib中。如果库文件中有重名的函数或文件,可能需要使用特定的选项来处理冲突。列表文件(listfile)记录了库中对象文件的详细信息,方便查看和管理。
这篇文档提供了关于使用TCC编译C程序和通过TLIB.exe管理静态库的基础知识,这对于理解C语言的编译过程和库管理非常重要。
相关推荐










曹将
- 粉丝: 27
最新资源
- 掌握Oracle技术:PL/SQL与函数存储过程实战
- text to wave软件:语音合成测试工具
- 基于 ACCP5.0 实现的 C#.NET 影院售票系统开发
- Hibernate框架技术:深入学习与应用指南
- ASSET2000样本数据库:快速入门与SQL2000实践学习
- 掌握英语:200张桌面级单词记忆图解法
- 掌握Spring依赖注入与AOP的实践指南
- 深入Struts源码:掌握框架底层逻辑
- Visual Studio 2005开发客户端-服务器聊天程序指南
- 掌握INI文件读写与自动创建技巧
- Struts框架应用示例与源码解析
- ASP.NET Web表单安全控制与认证系统实现
- C语言随书答案工具:BXViewer及C_Answer_book解析
- 深入解析七层架构源代码及详细说明
- TelnetScript 脚本使用教程与宏替换实例
- 完整需求文档编写指南及下载链接
- PEID 0.95官方版发布:安全查壳工具更新
- CodeWarrior使用教程:详尽手册指南
- Eclipse SVN插件1.2.4版本发布
- Smart FDISK v2.05:硬盘分区与多系统安装管理工具
- 北大青鸟ACCP5.0 C#课程第七、八章作业解析
- C++面向对象技术课件深度解析
- S7-300 PLC使用说明书:掌握与应用
- Java Applet图像动态移动与重画教程