2014025688《嵌入式程序设计》第二周学习总结
2014025688(30)《嵌入式程序设计》第二周学习总结
计算机14-6 康文龙
一、gcc编译器
gcc 是一个交叉平台编译器,可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada 等多种语言,gcc编译流程如下。
以下为编译hello.c文件实:
1预处理极端:gcc –E hello.c –o hello.i
2编辑阶段: gcc –S hello.i –o hello.s
3汇编阶段: gcc –c hello.s –o hello.o
4链接阶段: gcc hello.o –o hello
二、库
1、静态库
库名:
一般为lib***.a,其中***是该lib的名称。
创建库:
ar –rc libstatic.a a.o b.o
优点:
(1)模块化,分工合作
(2)避免少量改动经常导致大量的重复编译连接
(3)也可以重用,注意不是共享使用
ar命令创建静态库文件.下面是常用的命令选项:
-d:从指定的静态库文件中删除文件
-m:把文件移动到指定的静态库文件中
-p:把文件移动到指定的静态库文件中
-q:快速地把文件追加到静态库文件中
-r:把文件插入到静态库文件中
-t:显示静态库文件中文件的列表
-x:从静态库文件中提取文件
2、动态库
库名:
一般为lib***.so.major.minor,其中***是该lib的名称,major是主版本号, minor是副版本号。
创建库:
gcc –fpic –shared –o libshared.so a.o b.o
优点:
(1)可以将最终可执行文件体积缩小
(2)多个应用程序共享内存中得同一份库文件,节省资源
(3)可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。
三、实验过程
四、代码调试中的问题和解决过程
(1)关于GCC体系结构相关选项仍然理解不透。
(2)vi的复合剪切功能使用不习惯。
(3)对命令不熟悉打代码太慢。
五、其他(感悟、思考等,可选)
学习需要日积月累的练习,努力认真是学好的关键。