RS6000程序编译与Makefile中的伪目标

需积分: 15 0 下载量 80 浏览量 更新于2024-08-26 收藏 59KB PPT 举报
"了解如何在RS6000平台下使用makefile进行程序构建,特别是关于伪目标`clean`的使用,以及AIX平台上的C编译器和相关工具的介绍。" 在RS6000平台上,makefile是用于自动化构建、编译和链接程序的重要工具。`clean`是一个典型的伪目标,它不对应任何实际的输出文件,而是用于清理编译过程中生成的临时文件和目标文件。在给定的描述中,`clean:`后面跟着的是清理命令,如`rm *.o temp`,这会删除所有`.o`对象文件和名为`temp`的文件。执行`make clean`时,这些命令会被运行以保持工作目录的整洁。 在编写Makefile时,伪目标的命名需避免与实际文件名冲突,否则它们将失去作为伪目标的意义,因为make会尝试构建实际的文件。此外,伪目标通常用于定义一系列自定义的任务,如编译清理、代码格式化等。 RS6000上的程序编译涉及多个步骤和工具。预备工作中,开发者需要了解编译的不同文件类型,如源代码文件、运行时生成的可执行文件、静态库文件和动态库文件。运行文件可以通过不同类型的C编译器创建,例如cc、xlc、xlc_r、xlC和xlC_r,它们分别对应不同的编译模式和线程库支持。 AIX平台上的C编译器各有特点,cc是常用的扩展模式C编译器,xlc遵循ANSI C标准,而c89则使用ANSI头文件。不同后缀的编译器支持不同级别的线程库,例如_r后缀的编译器用于连接线程库。编译器的常用参数包括-o指定输出文件名、-c生成对象文件、-g生成调试信息、-I添加头文件搜索路径、-L添加静态库搜索路径等。 预编译工具如Oracle的PROC(PRO*C)允许将SQL语句嵌入C程序中,通过预编译过程将SQL转化为对ORACLE运行库的调用。PROC的参数如`define=__64BIT__`和`config=xxx.cfg`用于配置预编译行为。 静态库的管理使用`ar`工具,它可以添加、删除或提取库中的文件,如`-d`删除文件,`-r`替换文件,`-v`显示详细信息,`-x`展开文件,以及`-t`列出文件列表。静态库的编译也需要考虑`-I`和`-L`参数来指导头文件和库的查找。 动态库的生成则涉及到链接器`ld`,`-b3264OBJECT_MODE`这样的选项用于指定对象模式,`glink`用于处理未定义的函数和全局符号。 RS6000平台上的程序构建涉及复杂的编译、链接和库管理,熟练掌握makefile和相关工具的使用对于高效开发至关重要。理解伪目标的概念,以及各种编译器和工具的参数,可以帮助开发者更好地管理和维护他们的项目。