欢迎来到天天文库
浏览记录
ID:38600815
大小:295.50 KB
页数:98页
时间:2019-06-16
《《Linux系统的C编程》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章Linux系统的C编程第十一章Linux系统的C编程11.1编译器11.2头文件11.3链接器与库文件11.4静态库11.5共享库11.6make与Makefile11.7调试器gdb11.8UNIX/Linux其它编程工具简介11.1编译器11.1.1功能及用法11.1.2参数及说明11.1.3示例11.1.4gcc的工作过程11.1.1功能及用法1.为什么要使用编译器?C语言源程序需要经过编译和链接这两个过程才能转换成二进制可执行程序。一般在Unix系统中使用的C编译器是cc(CCompiler的缩写)。在各个Linux发行版本中广泛使用的C编译器名为
2、gcc(GNUcc)。为了保持与Unix系统的兼容,在Linux系统中cc作为了gcc的一个链接。2.gcc的功能gcc能将C/C++源程序和目标程序编译并调用链接程序ld生成可执行文件,如果用户没有给出可执行文件的名字,gcc将默认生成一个名为a.out的可执行文件。3.gcc的用法gcc的一般用法为:gcc[options]其常用格式为:gcc[-c][-S][-E][-s][-g][-static][-shared][-rdynamic][-Idir…][-Ldir…][-lmylib][-Olevel][-xLanguage][-Dm
3、acro[=defn]…][-Umacro][-mmachine-option…][-oout_file]infile…几点说明gcc根据源程序的扩展名来决定使用哪一种语言的编译器进行编译工作。扩展名为“.c”的文件被gcc认为是C语言的源程序文件。例如:gcchello.cgcc编译出来的可执行程序默认是a.out。g++是一个C++版本的gcc编译器。g++要求C++语言源程序文件带有扩展名“.cc”或“.C”。例如:g++hello.cc,g++hello.C参数-c:编译后仅输出*.o型的目标文件,而不连接生成可执行程序-S:编译后仅生成汇编语言文件*.s
4、,但不生成目标文件和可执行代码-s:生成可执行文件时,删除符号表和重定位信息。生成成品软件时使用-E:在预处理过程后结束,不进行编译和连接,也不生成可执行代码-g:在可执行文件中加入调试信息,便于程序的调试参数(续)-ooutfile:指定输出文件名。若不指定则生成a.out-Idir:将目录dir添加到头文件搜索范围-lmylib:连接时搜索库libmylib.a-Ldir:将目录dir添加到库文件搜索范围-O[L]:编译时进行优化。L为优化级别,分别0~3和s。生成最终产品时使用-static:禁止使用共享库(动态连接库)-shared:生成共享库-rdyna
5、mic:连接时使用共享库11.1.3示例C程序设有一个文件名为hello.c的程序,其内容为:#includemain(){printf(“HelloWorld!”);}编译和执行步骤编译gcchello.c#生成可执行程序a.out,或gcc–ohellohello.c#生成可执行程序hello运行./a.out或./hello输出结果HelloWorld!2.c++程序一个c++版的HelloWorld程序,其文件名为hello.C,内容为:#includemain(void){cout<<"Hello,World
6、!"<7、ation)汇编(Assembly)链接(Linking)11.2头文件在标准C中有两种形式的头文件使用方式:#include#include“headfile.h”区别:#include型头文件搜索范围为默认位置/usr/include,#include“headfile.h”型头文件的搜索位置为当前目录,在Linux的GNUC中,若当前目标不存在headerfile.h,则也会到默认位置去搜索。11.3链接器与库文件UNIX/Linux的链接器为ld,其功能是将目标文件或库文件链接在一起,生成可执行文件,一般在编8、译过程的最
7、ation)汇编(Assembly)链接(Linking)11.2头文件在标准C中有两种形式的头文件使用方式:#include#include“headfile.h”区别:#include型头文件搜索范围为默认位置/usr/include,#include“headfile.h”型头文件的搜索位置为当前目录,在Linux的GNUC中,若当前目标不存在headerfile.h,则也会到默认位置去搜索。11.3链接器与库文件UNIX/Linux的链接器为ld,其功能是将目标文件或库文件链接在一起,生成可执行文件,一般在编
8、译过程的最
此文档下载收益归作者所有