- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
gcc的简介 gcc 是 GNU 的 C 和 C++ 编译器。实际上,gcc 能够编译多种语言:C、C++ 和 Object C等。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。也可以对几个 C 源文件利用 gcc 编译、连接并生成可执行文件。 gcc可以使程序员灵活地控制编译过程。编译过程一般可以分为下面四个阶段,每个阶段分别调用不同的工具进行处理 gcc的简介 GNU C 的使用 基本语法 gcc [options] [filenames] 说明: 在gcc后面可以有多个编译选项,同时进行多个编译操作。很多的gcc选项包括一个以上的字符。因此你必须为每个选项指定各自的连字符。例如,下面的两个命令是不同的: gcc -c -g test1.c gcc -cg test1.c 当你不用任何选项编译一个程序时,GCC将会建立(假定编译成功)一个名为a.o的可执行文件。 gcc选项 gcc选项 例如有程序: hello.c (1)预处理 gcc -E hello.c -o hello.i 使用命令查看ls -l 得到:hello.i (查看hello.i) (2)编译 gcc -S hello.i -o hello.s (3)汇编 gcc -c hello.s -o hello.o (4)连接 gcc hello.o -o xxxx (5)执行 ./xxxx gcc选项 还有两个非常常用的库依赖选项 -I dir 可以在头文件的搜索路径中,添加dir目录。由于Linux中头文件都默认放到了“/usr/include/”下,当用户希望添加放置其它位置的头文件时,可以用“-I dir”选项来指定 例如在 “/root/xxxx/”有两个文件 /*pan.c*/ #include my.h main() { printf(“welcome to you!!!!!\n”); return 0; } gcc选项 例如在 “/root/xxxx/”有两个文件 /*my.h*/ #include stdio.h 这样,就可在gcc命令行中加入“-I”选项 gcc pan.c –I /root/xxxx/ -o pan 然后运行程序,输出结果 ./pan gcc选项 警告选项 如:有以下程序段(程序名为warning.c) #include stdio.h void main() { long long tmp = 1; printf(“This is a bad code!\n”); return 0; } 分别用选项 -ansi、-pedantic、-Wall编译程序 警告选项 输入 gcc -ansi warning.c –o warning 该选项没有发现“long long”这个数据类型的错误 gcc -pedantic warning.c –o warning 该选项查出了“long long”这个无效数据类型 gcc -Wall warning.c –o warning 该选项找出未使用的变量tmp,但没有找出无效数据类型的错误 优化选项 优化选项可以使GCC在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件。这些选项中最典型的是-O和-O2选项。 -O0 不进行优化处理。 -O1或O选项:告诉GCC对源代码进行基本优化。这些优化在大多数情况下都会使程序执行的更快。 -O2选项:告诉GCC 产生尽可能小和尽可能快的代码。-O2选项将使编译的速度比使用-O时慢。但通常产生的代码执行速度会更快。 -O3选项:比 -O2 更进一步优化,包括 inline 函数。 gdb 使用实例(1/2) /* 在目录/root/yyyy/下有一个有错误的 C 源程序 test.c */ #include stdio.h int sum(int m); int main() { int i ,b=0; sum(50); for(i=1;i=50;i++) { b+=i; } printf(“The sum of 1-50 is %d \n”,b); } gdb 使用实例(1/2) int sum(int m) {
文档评论(0)