RS6000程序编译详解:Makefile与文件类型
需积分: 15 133 浏览量
更新于2024-08-26
收藏 59KB PPT 举报
本文主要介绍了RS6000平台上的程序编译,特别是与Makefile相关的知识,包括编译文件的三种类型:运行文件、静态库文件和动态库文件,并详细阐述了各种编译工具的使用。
在RS6000上进行程序编译时,首先要了解编译文件的种类。运行文件是最终可以执行的程序,静态库文件是一组预编译的对象文件,它们被链接到目标程序中以提供函数和数据。动态库文件则是在运行时加载到进程中的库,允许多个程序共享同一份代码,节省内存。
对于编译运行文件,通常会使用cc、xlc、xlc_r、xlC以及xlC_r等编译器。其中,cc是最常用的,而xlc和c89分别对应ANSI C标准的编译器,它们支持不同的线程库。这些编译器的参数如-o用于指定输出文件名,-c用于生成对象文件,-g生成调试信息,-I添加头文件搜索路径,-L添加静态库搜索路径。
在处理静态库时,使用ar工具进行管理。ar可以删除库中的文件(-d),显示详细信息(-v),替换库中的文件(-r),展开库中的文件(-x)以及列出库中的文件(-t)。另外,-X3264选项可能用于处理64位编译的相关问题。
动态库的创建则涉及ld链接器,其-b3264OBJECT_MODE选项可能用于处理对象模式。动态库在运行时动态加载,可以减少程序的启动时间和内存占用,但需要确保所有依赖的动态库在运行环境中可用。
此外,PRO*C是Oracle提供的预编译器,它可以将SQL语句嵌入到C语言程序中。预编译器会处理SQL语句并生成调用Oracle运行库的C代码。预编译器的参数如define和config用于指定配置,INCLUDE和lSYS_INCLUDE用于设置头文件路径,这些通常在配置文件如pcscfg.cfg中设定。
在编写Makefile时,我们需要根据上述信息来定义规则,指定编译器、编译选项、链接库等,以便自动化编译过程。例如,一个简单的Makefile可能包含CC变量来指定C编译器,CFLAGS变量来包含编译选项,以及链接步骤中使用-L和-l选项来指定库的路径和名称。
理解这些编译工具和文件类型对于在RS6000系统上高效地构建和管理软件项目至关重要。通过熟练掌握Makefile的编写和编译参数的使用,开发者能够有效地组织和自动化编译过程,提高开发效率。
2024-03-24 上传
2019-10-08 上传
2019-11-02 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
雪蔻
- 粉丝: 30
- 资源: 2万+
最新资源
- ema-for-mei-js:TypeScript中MEI的EMA实现(同构)
- cplusplus-helloworld:这是我的第一个C ++项目
- ng-bootstrap-loading:角度页面的加载蒙版显示功能
- johaneous.github.io:韦伯斯特无删节词典(免费的En-En-Cht词典)
- 超级万年历记录时间过程与节气,纪念日的C++版本的实现
- api-cng
- 基于Docker的MySQL+Bind9-dlz一主多从高可用DNS方案.zip
- node-webapp-step1:用于学习外语学习网络应用程序开发
- CalDash:CS294 Web应用程序
- 个人档案袋:个人档案库
- quickplot:这是quickplot模块的测试版,是pandas,matplotlib和seaborn的包装,用于快速创建漂亮的Viz进行分析
- DlvrMe-API
- azuredemoapp
- test2-solutions:CMP237 测试 2 实践解决方案
- emsi-devops:这是霍尔伯顿学校项目的资料库
- Finite-State-Machine-Model:延续2018年夏季开始的项目,其中Graeme Zinck和我在Ricker博士的带领下制作了Finite State Machines的专业模型,以实施理论并为正在进行的研究提供了试验平台。 允许生成FSM,并执行多项操作(例如“产品”和“并行组合”),并且目前已集成了U结构以用于进一步分析。 目前正在为Mount Allison大学的Ricker博士开发此工具。