gcc基础

gcc

可以编译C、C++、Object C等语言编写的程序。

gcc的语法结构

gcc的基本语法

gcc [options] [filenames]

[options] 编译器所需要的编译选项

常用编译选项

-c:只是编译不链接,生成目标文件.o,制作库文件时,中间需生成.o文件

-S:只编译不汇编,生成汇编代码

-E:只进行预编译,不做其他处理

-g:调试信息

-o file:指定输出文件

-v:查看当前gcc的版本

-std=name:指定C语言的 标准(如c99等,标准越高要求越高,默认肯恩格式C89,C90)

-l dir:在头文件的搜索路径列表中添加dir目录

范例:

gcc -o obj/hello_word.o  -c hello_word.c

obj/hello_word.o:目标文件

gcc -o bin/hello_word2 obj/hello_world.o

bin/hello_word2:可执行文件

gcc -std=c99 -o obj/hello_word.o  -c hello_word.c

-std=c99:按照c99标准编译,必须放在-o之前

优化选项

-O:减少代码的长度和执行时间,效果等价于-O1,其中包括包含线程跳转和延迟推展

-O2:完成-O1内容外多来点,如处理器指令调度。常用选项。

-O3:.......

范例:

有个大循环optimize.c,通过不同优化编译选项,查看执行时间差别。

(time ./bin/optimize   //查看执行时间)

gcc -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为27s

gcc -O -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为6s

gcc -O2 -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为6s

gcc -O3 -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为6s

 

警告和出错选项

-ansi:

-pedantic:

-pedantic-error:

-W:关闭告警

-Wall:允许发出gcc所提供的所有有用的报警信息。开发时候经常用到

范例:

hello_world.c删除return 0

gcc -Wall -o bin/hello_world src/hello_word.c

warning:control reaches end of non-void funtion 该文件有返回类型(void为无返回,non-void有返回),所以必须有return

:gcc -o bin/hello_world src/hello_word.c 并不会报错,语法没有问题(' } '作为返回),只是语法不健壮,跨平台有可能会出现问题

选项制作库文件选项

-L dir:

-static:

-lname:

-shared:

原文地址:https://www.cnblogs.com/cevinchen/p/10461254.html