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
- linux学习记录(4)
- Linux学习记录(不断更新)
- Linux学习记录(一)
- Linux学习记录(二)
- Linux学习记录(三)
- Linux学习记录(四)
- linux学习记录(一)
- linux学习记录(1)
- linux学习记录(2)
- Linux学习记录(4)系统常用命令学习
- 学习记录(4)
- linux学习的一些记录(原创)
- Linux学习记录之进程(一)
- Linux学习记录之进程(二)
- Linux学习记录(15)SELinux基础知识
- linux学习记录
- linux 脚本 学习记录
- linux 脚本-学习记录
- 小白仿写快排
- 诗意的世界
- C++之简单文件的输入与输出
- UVA 1590 IP Networks 位操作解题
- epoll经验
- linux学习记录(4)
- Linux为什么要选择宏内核
- html中style的两种方式和js的两种方式
- poj 2387 Til the Cows Come Home
- 继承与封装
- Manacher算法:求解最长回文字符串,时间复杂度为O(N)
- Matlab车牌识别系统
- 经典查找算法
- chardet==>探别编码问题