RS6000程序编译与Makefile实战

需积分: 15 0 下载量 133 浏览量 更新于2024-07-14 收藏 59KB PPT 举报
"Makefile的例子-RS6000 makefile" 这个资源主要涉及的是在RS6000平台上的程序构建,特别是如何利用Makefile进行编译管理。Makefile是一个自动化构建工具,用于简化软件项目的编译和链接过程。在给出的Makefile示例中,可以看到它定义了几个目标(`edit`, `main.o`, `kbd.o`)以及如何通过cc编译器生成这些目标的规则。 - `edit` 是最终的可执行文件,由 `main.o` 和 `kbd.o` 链接而成。 - `main.o` 依赖于 `main.c` 和 `defs.h`,意味着在构建 `main.o` 之前需要先编译 `main.c` 并确保 `defs.h` 可用。 - `kbd.o` 依赖于 `kbd.c`, `defs.h` 和 `command.h`,同样的,需要编译 `kbd.c` 并确保所有依赖的头文件都在。 - `clean` 目标是一个清理命令,用于删除编译过程中生成的临时文件,如 `.o` 文件。 RS6000是IBM的一系列RISC架构服务器和工作站,这里的程序编译涉及AIX操作系统,它使用了多种C编译器: - `cc`: 扩展模式的C编译器,是最常用的选项。 - `xlc`: ANSI C编译器,适用于使用UNIX头文件的项目。 - `c89`: ANSI C编译器,使用ANSI头文件,还有带 `_r` 后缀的版本,如 `_r`, `_r4`, `_r7`,分别对应不同线程库的链接。 C编译器支持的常用参数包括: - `-o`: 指定输出文件的名称。 - `-c`: 只编译不链接,生成目标文件。 - `-g`: 生成调试信息,便于使用GDB等调试工具。 - `-I`: 添加头文件搜索路径。 - `-L`: 添加静态库搜索路径。 此外,资源还提到了Oracle预编译工具 `proc`,它将SQL语句嵌入到C程序中,并转换为对Oracle运行库的调用。预编译器的配置可以通过定义宏和配置文件来完成,比如 `define=__64BIT__` 和 `config=xxx.cfg`。 对于库的构建,提供了两个工具: - `ar`: 静态库管理工具,可以创建、更新和提取静态库。例如,`-d` 删除库成员,`-r` 替换成员,`-v` 显示详细信息,`-x` 解包成员,`-t` 列出成员。 - `ld`: 链接器,用于生成动态库。`-b3264OBJECT_MODE` 参数可能用于指定目标代码模式。 这些工具和参数的使用对于在RS6000上管理和构建C语言项目至关重要,能够提高开发效率并确保程序的正确编译和链接。