第七周(第六周停课)
大纲
1.静态库和动态库的区别
2.如何制作静态库和动态库
大纲
1.静态库和动态库的区别
2.如何制作静态库和动态库
内容:
1. gcc功能:
预处理 编译 汇编 链接
1)-E 文件名 停在预处理步骤(头文件展开)
-E Hello.c //-E Hello.c > hello.i 将文件放在hello.i中显示
2)在编译阶段停下(语法检查,词法分析)
-c Hello.c //-E Hello.c > hello.o
3)在汇编阶段停下()
-S Hello.c //-E Hello.c > hello.s
4) gcc Hello.c -o 重新命名的名字 //生成一个你命名的可执行文件
1. gcc功能:
预处理 编译 汇编 链接
1)-E 文件名 停在预处理步骤(头文件展开)
-E Hello.c //-E Hello.c > hello.i 将文件放在hello.i中显示
2)在编译阶段停下(语法检查,词法分析)
-c Hello.c //-E Hello.c > hello.o
3)在汇编阶段停下()
-S Hello.c //-E Hello.c > hello.s
4) gcc Hello.c -o 重新命名的名字 //生成一个你命名的可执行文件
2.静态库和动态库的区别:
静: 在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a
动: 在执行程序启动时加载到执行代码中,后缀名:.so
执行效率
代码部署
升级
占用内存大小
3.静态库的建立:
静: 在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a
动: 在执行程序启动时加载到执行代码中,后缀名:.so
执行效率
代码部署
升级
占用内存大小
3.静态库的建立:
第七周(第六周停课)
大纲
1.静态库和动态库的区别
2.如何制作静态库和动态库
大纲
1.静态库和动态库的区别
2.如何制作静态库和动态库
内容:
1. gcc功能:
预处理 编译 汇编 链接
1)-E 文件名 停在预处理步骤(头文件展开)
-E Hello.c //-E Hello.c > hello.i 将文件放在hello.i中显示
2)在编译阶段停下(语法检查,词法分析)
-c Hello.c //-E Hello.c > hello.o
3)在汇编阶段停下()
-S Hello.c //-E Hello.c > hello.s
4) gcc Hello.c -o 重新命名的名字 //生成一个你命名的可执行文件
1. gcc功能:
预处理 编译 汇编 链接
1)-E 文件名 停在预处理步骤(头文件展开)
-E Hello.c //-E Hello.c > hello.i 将文件放在hello.i中显示
2)在编译阶段停下(语法检查,词法分析)
-c Hello.c //-E Hello.c > hello.o
3)在汇编阶段停下()
-S Hello.c //-E Hello.c > hello.s
4) gcc Hello.c -o 重新命名的名字 //生成一个你命名的可执行文件
2.静态库和动态库的区别:
静: 在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a
动: 在执行程序启动时加载到执行代码中,后缀名:.so
执行效率
代码部署
升级
占用内存大小
3.静态库的建立:
g++ -c helpguy.cc // 生成文件: helpguy.o
静: 在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a
动: 在执行程序启动时加载到执行代码中,后缀名:.so
执行效率
代码部署
升级
占用内存大小
3.静态库的建立:
g++ -c helpguy.cc // 生成文件: helpguy.o
ar crs libhelpguy.a helpguy.o // 生成库文件:libhelpguy.a
4.动态库的建立:
4.动态库的建立:
gcc -shared -fPIC -o 库名 -so 源文件.c
动态库的使用:
gcc 源文件.c ./库名.so -o 可执行文件名