UNIX C与C++简介.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNIXC与C简介

2008年4月 UNIX C/C++简介 2008.9 目录 C和C++编译器 Make工具 UNIX环境编程 C和C++编译器 AIX VisualAge C++ Professional / C for AIX Compiler cc/xlc xlC HP cc、aC++ compiler Linux cc/gcc、g++ 源程序编译 helloworld.c #include stdio.h int main() { printf(Hello World\n); exit(0); } 编译 $ cc helloworld.c $ cc -ohelloworld helloworld.c 编译过程 使用编译和链接程序选项,调用内部程序 生成目标文件helloworld.o 调用链接程序ld,把目标文件和默认的库链接在一起,生成可执行程序 删除目标文件helloworld.o和临时文件 编译过程示例 cc –v -ohelloworld helloworld.c exec: /usr/vac/exe/xlcentry(/usr/vac/exe/xlcentry,-D_AIX,-D_AIX32,-D_AIX41,-D_AI X43,-D_AIX50,-D_AIX51,-D_IBMR2,-D_POWER,-q32,-qlanglvl=extended,-qnoro,-qnoroconst,-ohelloworld.o,helloworld.c,/tmp/xlcW0.TDeUa,/tmp/xlcW1.TDeUb,/dev/null,helloworld.lst,/dev/null,/tmp/xlcW2.TDeUc,NULL) exec: /usr/vac/exe/xlCcode(/usr/vac/exe/xlCcode,-qlanglvl=extended,-qnoro,-qnoro const,/tmp/xlcW0.TDeUa,/tmp/xlcW1.TDeUb,helloworld.o,helloworld.lst,/tmp/xlcW2.T DeUc,NULL) exec: /bin/ld(/bin/ld,-b32,/lib/crt0.o,-bpT:0-bpD:0-ohellowo rld,helloworld.o,-L/usr/lpp/xlopt,-lxlopt,-lc,NULL) unlink: helloworld.o unlink: /tmp/xlcW0.TDeUa unlink: /tmp/xlcW1.TDeUb unlink: /tmp/xlcW2.TDeUc 指定函数库 链接程序会自动链接默认库,如标准C函数库libc.a 使用-l链接选项指定要链接的库名 例如:cc a.c –lm,指定要链接libm.a 目标文件和库 多个目标文件可以归档到一个库文件(library) cc –c foo1.c foo2.c foo3.c ar -vq libfoo.a foo1.o foo2.o foo3.o 函数库操作 显示库内容 ar –v –t libfoo.a 更新/添加库成员 ar –v –r libfoo.a foo1.o foo4.o 提取库成员 ar –v –x libfoo.a 删除库成员 ar –v –d libfoo.a foo2.o -L 链接选项 指定库文件路径 cc –oa a.c –labc –L$HOME/src/lib make工具 有效管理多文件项目的编译 Makefile文件说明各模块之间的关系及更新模块时的动作 make程序读取Makefile文件,根据目标模块的最后修改时间确定是否需要更新;对于需要更新的目标,执行在Makefile中定义的命令 Makefile的规则 Makefile文件主要含有一系列的规则,一般形式如下: target:dependency dependency (tab)command 规则说明 目标(target):make最终需要创建的文件。如可执行文件、目标文件;也可以是要执行的动作,如clean。 依赖文件(dependency)列表:编译目标文件所需要的文件。 命今(command):make执行的动作。通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字符必须为TAB字符。 示例一 edit : main.o kbd.o cc -o edit main.o kbd.o main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h command

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档