4.6第七周
来源:互联网 发布:java中合法关键字 编辑:程序博客网 时间:2024/06/05 16:47
本次课我们学习了gcc,了解了程序编译器的编译过程以及静态库和动态库的区别,各自的优缺点。
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
- 4.6第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 爬取豆瓣电影数据
- 继承
- 在ASP.NET中使用SQL Server作为数据库,DB First方式使用EF(EntityFramework)进行开发和部署时的connectionString
- javascript DOM节点、元素
- MySQL 多表关联更新及删除
- 4.6第七周
- Ubuntu Numix 图标安装
- POJ
- poj 2823 单调队列 (求特定长度区间的最大最小值)
- 基于apache的tomcat负载均衡和集群配置
- leetcode 328 Odd Even Linked List C++
- poller采集服务器的nagios无法启动了
- popToViewController的使用
- 题目1031:xxx定律