欢迎来到天天文库
浏览记录
ID:15501344
大小:947.41 KB
页数:78页
时间:2018-08-03
《精通unix下c语言编程与项目实践》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第一篇:起步篇千里之行,始于足下。第一章UNIX初步UNIX自1969年诞生以来,已经发展为SystemIII&V、BSD和Linux三大分支。UniX通过shell与用户交互,它是用户与系统间的界面。使用好shell对于学习使用UNIX来说是必须的。不需要你记住所有的命令,但基础的文件操作、目录操作及系统命令等却是必须的。Vi对于初学者是难点,不过只要通过一段时间的练习就能习惯;而且你会很快发现,它功能强大、更加灵活。这里不多说了:)第二章编程套件学习UNIX对于初学者有几种选择。一种就是最直接的,在本机上安装UNIX系统,不如
2、说Linux分支中的RedHat等;一种是在Windows环境下使用虚拟机方式安装UNIX系统;另一种则是使用网络终端登录到网络环境中的某个UNIX系统中。如果你相对黑洞洞的UNIX字符界面更喜欢舒适美观的Windows界面,那么推荐你选择第三种方式。开发套件包括:编辑器UltraEdit、网络终端SecureCRT或其他。编译器就不用说了,自然是cc(gcc或xlc系列)。这是C语言开发必不可少的。其中要注意-I(加载头文件路径)、-L(加载库文件路径)及-D(宏定义)参数的使用。Make工具使用。如何编写makefile是关键
3、。后面项目中使用时会详细介绍。Gdb调试器。Gdb乃符号级调试工具,它控制程序的内部执行,利用断点设置、单步运行等手段,将程序的执行过程逐步展示在调试者目前。这种调试方式在短代码中可以发挥得很好。事实上,随着软件项目的扩大化、复杂化和分布化,很少有程序员直接通过Gdb等工具调试;使用日志记录调试方法比Gdb等调试工具更为便捷和广泛。C工具:lint检查源代码是否正确,gprof分析程序时间消费量,cflow生成C语言流程图。第三章库的使用库分静态库和动态库两种。静态库的操作工具:ar命令。编写及使用静态库(1)设计库源码pr1.c
4、和pr2.c[root@billstonemake_lib]#catpr1.cvoidprint1(){printf("Thisisthefirstlibsrc!");}[root@billstonemake_lib]#catpr2.cvoidprint2(){printf("Thisisthesecondsrclib!");}(2)编译.c文件[bill@billstonemake_lib]$cc-O-cpr1.cpr2.c[bill@billstonemake_lib]$ls-lpr*.o-rw-rw-r--1bill
5、bill8044月1511:11pr1.o-rw-rw-r--1billbill8044月1511:11pr2.o(3)链接静态库为了在编译程序中正确找到库文件,静态库必须按照lib[name].a的规则命名,如下例中[name]=pr.[bill@billstonemake_lib]$ar-rsvlibpr.apr1.opr2.oa-pr1.oa-pr2.o[bill@billstonemake_lib]$ls-l*.a-rw-rw-r--1billbill18224月1511:12libpr.a[bill@billstonem
6、ake_lib]$ar-tlibpr.apr1.opr2.o(4)调用库函数代码main.c[bill@billstonemake_lib]$catmain.cintmain(){print1();print2();return0;}(5)编译链接选项-L及-l参数放在后面.其中,-L加载库文件路径,-l指明库文件名字.[bill@billstonemake_lib]$gcc-omainmain.c-L./-lpr[bill@billstonemake_lib]$ls-lmain*-rwxrwxr-x1billbill118054
7、月1511:17main-rw-rw-r--1billbill504月1511:15main.c(6)执行目标程序[bill@billstonemake_lib]$./mainThisisthefirstlibsrc!Thisisthesecondsrclib![bill@billstonemake_lib]$编写动态库(1)设计库代码[bill@billstonemake_lib]$catpr1.cintp=2;voidprint(){printf("Thisisthefirstdllsrc!");}[bill@billst
8、onemake_lib]$(2)生成动态库[bill@billstonemake_lib]$gcc-O-fpic-shared-odl.sopr1.c[bill@billstonemake_lib]$ls-l*.so-rwxrwxr-x1billb
此文档下载收益归作者所有