linux学习记录(4)

来源:互联网 发布:mysql中文参考手册 编辑:程序博客网 时间:2024/05/09 10:17

gcc属于GNU计划可以编译多种语言

编译器编译过程:预处理,编译,汇编,链接

1.预处理:

gcc -E文件名 预处理阶段暂停

   头文件展开,#include<stdio.h>展开

   宏替换#define

   条件编译

2.编译

gcc -c 文件名

语法检查

词法分析

3.汇编

gcc -S 文件名

 

gcc 文件名1 -o文件名2改名字

 

库文件:可以使用文件里面的函数和变量,但是看不见变量和函数功能实现

      静态库是在执行程序之前(编译)就已经加入到执行代码中,成为执行程序的一部分来执行,后缀名:.a  执行效率高,生成的可执行文件占用更多内存,更容易部署

      gcc -c add.c 生成add.o

      ar rcs 库名(libadd.a) add.o

      cp libadd.a/lib

      gcc main.c -ladd -L.

      

      动态库是在执行程序启动时加载到执行代码中,后缀名:.so  更容易升级,占用内存小,不容易部署,执行效率低

     创建: gcc -shared -fPIC -o 库名.so 源文件.c

     使用:gcc 源文件.c./库名.so -o可执行文件名

0 0
原创粉丝点击