Linux(内核驱动):05---gcc的基本用法

一、相关选项

  • -c:编译生成目标文件(object file),即.o文件
  • -o :后面接文件名,gcc可以通过另一个文件来生成这个-o后面的文件
  • -g:产生符号调试工具(gdb)所必要的符号资讯(符号表),要想对源代码进行调试,就必须加入这个选项
  • -Wall:以最高级别使用GNU编译程序,专门用于显示警告信息
  • -O/-O1:对程序进行优化编译、链接,这样产生的可执行文件的执行效率可以提高。但是编译。链接的速度可能会变慢
  • -O2:比-O/-O1更好的优化
  • -O3:比-O2更好的优化
  • -O0:指定不优化
  • -I(大写的i):后面接程序使用到的头文件的指定路径
  • -L:后面接程序中使用到的函数库的目录
  • -l(小写的L):后面接指定函数库的名称,一般与-L成对出现

二、演示案例

  • gcc  hello.c

不加任何参数时,会生成a.out可执行二进制文件

  • gcc  -c  hello.c   //默认生成hello.o文件
  • gcc  -c -o hello.o hello.c  //指定生成hello.o文件
  • gcc  -g -o hello hello.c  //生成hello可执行文件,顺便加上gdb可调试的符号表
  • gcc  -o  hello  hello.o   //链接指定生成hello可执行文件
  • gcc  -o  thank  thank1.o  thank2.o   //通过thank1.o与thank2.o链接成一个thank文件
  • gcc  -Wall  -c  hello.c  //以最严格的方式生成.o文件时,有警告会发出警告
  • gcc  -O  -c  hello.c    //以最佳化的方式生成.o文件
  • gcc  -o hello hello.c  -L/usr/lib   //生成hello执行文件时,指定函数库的搜索目录/usr/lib
  • gcc  -o hello hello.c  -L/usr/lib   -lqt   //生成hello执行文件时,指定函数库的搜索目录/usr/lib和函数库qt(qt函数库在/usr/lib目录内,所以没有使用绝对路径)
  • gcc  -o hello  hello.c  -I/usr/include   //生成hello执行文件时,指定头文件包含目录/usr/include

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/88648344
今日推荐