嵌入式系统设计学习周记③——嵌入式Linux开发项目

vim

Linux文本编辑器:vim——最强大的文本编辑器——摆脱鼠标
vi—vim—gvim三种模式:
①命令模式:yy(复制)、p(粘贴)、dd(删除)、u(恢复)
②插入模式:i/a(进入文本编辑模式)
③底行模式:shift+:
vim配置路径: vim/etc/vim/vimrc

gcc

gcc(GUNcc)特点:①GNU工具②交叉编译器
交叉编译:在当前CPU品台下编译出能在其他CPU平台下可执行的代码
源文件到可执行文件需要四步:①预处理②编译③汇编④链接

预处理

预处理:头文件展开、宏替换、条件编译
#include< stdio.h> 和#include"stido.h"的区别?
<>搜索路径:在系统的头文件下(/usr/include)查找,查找不到就报错
""搜索路径:先在当前目录下查找,找不到再到系统的头文件目录下查找
gcc -E :只对文件进行预处理

编译

gcc -S :将预处理文件编译成汇编文件(文件.s)

汇编

gcc -C :将汇编文件编译成目标文件(文件.o)

链接

建立符号表——可执行文件(文件a.out)

常用编译选项

gcc -o 修改文件名
gcc -w 关掉警告
gcc -wall 开启所有警告
gcc- o1/o2/o3 编译器优化

LINUX库文件

1、库文件—保存函数和变量(仓库)特点:保存的函数与变量只能使用但不能看到其实现
2、Linux库文件
静态库(文件.a):在编译阶段加载(将库文件的代码加载到源文件)
动态库(文件.so):在运行时加载
区别:①使用静态库生成的可执行文件大于动态库生成的可执行文件(程序运行占用较多内存)
②使用静态库生成的可执行文件难以升级,使用动态库生成的可执行文件易于升级
③使用静态库生成的可执行文件运行速度快,使用动态库生成的可执行文件运行速度慢
④使用静态库可执行文件里的代码容易部署,动态库的难以部署
3、Linux库文件存放路径
/lib 存放的是系统运行所需要的库
/usr/lib 存放的是程序执行所需要的库
4、如何制作静态库
①将需要保存的函数所在的文件编译成目标文件
gcc -c add.c—>add.o
②静态库的制作公祖:ar
ar rcs(不存在就建立,存在就更新)库名 目标文件名
ar rcs libadd.a add.o
③使用
gcc 源文件 -l库名 -L库存放的路径
gcc main.c -ladd -L.(.表示当前路径)
5、如何制作动态库
gcc -shared -fPIC源文件 -o libadd.so
gcc -shared -fPICadd.c -o libadd.so
使用
方法一: cp libadd.so /usr/lib
gcc main.c -ladd
方法二: gcc main.c /libadd.so -o add

gcc -static

此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行

你可能感兴趣的:(嵌入式系统设计学习周记③——嵌入式Linux开发项目)