GCC笔记

GCC

参数 说明
-ansi 依据ANSI标准
-c 跳过连接步骤直接生成目标文件(.o)
-g 添加gdb调试信息到程序,调试程序时使用。
-m 类型 根据给定CPU类型优化代码
-o 文件名 生成可执行文件
-O [级别] 指定优化级别0~3,越大程度越高,默认0
-S 跳过汇编和连接阶段,并保留汇编代码(.s)文件
-v 产生尽可能多的输出信息
-w 忽略警告信息
-W 产生比默认警告更多的警告信息
-E 产生预处理(.i)文件
-I dir 指定头文件搜索路径
-L dir 库文件搜索目录
-static 连接静态库
-l库名 连接库文件
-Wall 发出所有告警信息
-werror 告警信息转为错误信息,有警告就停止编译

linux下函数库的命名规范:

lib+库名+.a/.so

.a:静态库

.so:共享库

gcc使用库时要用-l参数

gcc x.c -o x.out -l库名 (l和库名之间没有空格)

-L dir指定库文件搜索路径

生成库文件

静态库

静态库也称为归档库(archive),以.a结尾的文件。

如何创建静态库:

  1. 需要原程序 x.c x.h
  2. 使用gcc -c 编译成.o文件
  3. 使用ar命令创建静态库。 ar crv lib库名.a 所有.o文件
  4. 使用库时,include头库中函数声明的文件
  5. 编译时gcc -l参数指定库
共享库

共享库在运行时连接,以.so结尾的文件

gcc 源文件列表 -fPIC -shared -o lib库名.so

你可能感兴趣的:(编程通用,GCC,GCC)