欢迎来到天天文库
浏览记录
ID:48060443
大小:540.00 KB
页数:44页
时间:2019-05-06
《unix系统下c编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Unix系统下C编程北京神州数码思特奇信息技术股份有限公司研究院示例C程序设有一个文件名为hello.c的程序,其内容为:#includemain(){printf(“HelloWorld!”);}编译和执行步骤编译gcchello.c#生成可执行程序a.out,或gcc–ohellohello.c#生成可执行程序hello运行./a.out或./hello输出结果HelloWorld!纲要编译器头文件链接器与库文件静态库共享库功能及用法为什么要使用编译器?C语言源程序需要经过编译和
2、链接这两个过程才能转换成二进制可执行程序。一般在Unix系统中使用的C编译器是cc(CCompiler的缩写)。在各个Linux发行版本中广泛使用的C编译器名为gcc(GNUcc)。为了保持与Unix系统的兼容,在Linux系统中cc作为了gcc的一个链接。gcc的功能gcc能将C/C++源程序和目标程序编译并调用链接程序ld生成可执行文件,如果用户没有给出可执行文件的名字,gcc将默认生成一个名为a.out的可执行文件。gcc的用法gcc的一般用法为:gcc[options]其常用
3、格式为:gcc[-c][-S][-E][-s][-g][-static][-shared][-rdynamic][-Idir…][-Ldir…][-lmylib][-Olevel][-xLanguage][-Dmacro[=defn]…][-Umacro][-mmachine-option…][-oout_file]infile…几点说明gcc根据源程序的扩展名来决定使用哪一种语言的编译器进行编译工作。扩展名为“.c”的文件被gcc认为是C语言的源程序文件。例如:gcchello.cgcc编译出来的可执行
4、程序默认是a.out。g++是一个C++版本的gcc编译器。g++要求C++语言源程序文件带有扩展名“.cc”或“.C”。例如:g++hello.cc,g++hello.C参数-c:编译后仅输出*.o型的目标文件,而不连接生成可执行程序-S:编译后仅生成汇编语言文件*.s,但不生成目标文件和可执行代码-s:生成可执行文件时,删除符号表和重定位信息。生成成品软件时使用-E:在预处理过程后结束,不进行编译和连接,也不生成可执行代码-g:在可执行文件中加入调试信息,便于程序的调试参数(续)-ooutfile:指
5、定输出文件名。若不指定则生成a.out-Idir:将目录dir添加到头文件搜索范围-lmylib:连接时搜索库libmylib.a-Ldir:将目录dir添加到库文件搜索范围-O[L]:编译时进行优化。L为优化级别,分别0~3和s。生成最终产品时使用-static:禁止使用共享库(动态连接库)-shared:生成共享库-rdynamic:连接时使用共享库gcc的常用选项gcc常用选项选项含义-c仅对源文件进行编译,不链接生成可执行文件。在对源文件进行查错时,或只需产生目标文件时可以使用该选项。-g[gdb
6、]在可执行文件中加入调试信息,方便进行程序的调试。如果使用中括号中的选项,表示加入gdb扩展的调试信息,方便使用gdb来进行调试-O[0、1、2、3]对生成的代码使用优化,中括号中的部分为优化级别,缺省的情况为2级优化,0为不进行优化。注意,采用更高级的优化并不一定得到效率更高的代码。-Dname[=definition]将名为name的宏定义为definition,如果中括号中的部分缺省,则宏被定义为1gcc常用选项选项含义-Idir在编译源程序时增加一个搜索头文件的额外目录——dir,即include
7、增加一个搜索的额外目录。-Ldir在编译源文件时增加一个搜索库文件的额外目录——dir-llibrary在编译链接文件时增加一个额外的库,库名为library.a-w禁止所有警告-Wwarning允许产生warning类型的警告,warning可以是:main、unused等很多取值,最常用是-Wall,表示产生所有警告。如果warning取值为error,其含义是将所有警告作为错误(error),即出现警告就停止编译。gcc的常用选项c++程序一个c++版的HelloWorld程序,其文件名为hello
8、.C,内容为:#includemain(void){cout<<"Hello,World!"<
此文档下载收益归作者所有