学习交叉编译比较好的网站
交叉编译链:
介绍的很到位,里面还有交叉编译链的下载网址:
https://segmentfault.com/a/1190000020955640?utm_source=tag-newest
gnueabi和gnueabihf的区别
gnueabi相关的两个交叉编译器: gnueabi和gnueabihf
在debian源里这两个交叉编译器的定义如下:
gcc-arm-linux-gnueabi – The GNU C compiler for armel architecture
gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture
可见这两个交叉编译器适用于armel和armhf两个不同的架构, armel和armhf这两种架构在对待浮点运算采取了不同的策略(有fpu的arm才能支持这两种浮点运算策略)
makefile的学习:
makefile简介–makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
https://blog.csdn.net/freeking101/article/details/51610782/
shell命令大全
https://www.runoob.com/linux/linux-command-manual.html
PHONY
.PHONY是一个伪目标,可以防止在Makefile中定义的只执行命令的目标和工作目录下的实际文件出现名字冲突,另一种是提交执行makefile时的效率。
exec的指令
exec ls 在shell中执行ls,ls结束后不返回原来的shell中了
exec <file 将file中的内容作为exec的标准输入
exec >file 将file中的内容作为标准写出
exec 3<file 将file读入到fd3中
sort <&3 fd3中读入的内容被分类
exec 4>file 将写入fd4中的内容写入file中
ls >&4 Ls将不会有显示,直接写入fd4中了,即上面的file中
exec 5<&4 创建fd4的拷贝fd5
exec 3<&- 关闭fd3
makefile里的函数
makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样
return =
(
f
u
n
c
t
i
o
n
n
a
m
e
a
r
g
1
,
a
r
g
2
,
a
r
g
3...
)
。
可
能
这
里
的
′
(functionname arg1,arg2,arg3...)。 可能这里的'
(functionnamearg1,arg2,arg3...)。可能这里的′'更像是从某个地址取值类似的操作。
一些符号
cc —》默认是gcc
$< -->依赖列表中最前面的一个
$^ -->所有依赖
$@ -->所有目标,但是我们最终希望是:一个目标,多个依赖!!!!
% —》自动匹配,相当于linux下的通配符* *.c