1.下载 arm-linux-gcc 4.4.3版本后更新路径
sudo vim /home/linux/.bashrc 的最后一行加入路径
或者
sudo vim /erc/profile 最后一行加路径
如果使用第一个改,则注释掉第二个的最后一行的旧的arm-linux-gcc 的路径
版本更新好后,使用编译可能还有错误,需要加入库
sudo apt-get install lib32stdc++6
2.makefile示例
3.编译步骤:
1. 拷贝默认配置到.config (cp arch/arm/configs/xxx_defconfig .config)
cp config_mini2440_td35 .config (需要在官网下载内核源码,找到相应config拷贝到config,我的这个minitd35不属于官网的,内部配置个人修改过)
2. make menuconfig
3. make uImage
编译好后可以下载入板子,按照我之前的内核驱动文章操作
4.image区别
Image 可知直接运行的内核镜像
zImage 一段解压程序 + Image的压缩包
uImage 64字节的头信息 + zImage
5.动态库
静态(链接)库 libxxx.a
静态链接进可执行程序
可执行程序偏大
运行时只需要可执行程序即可
生成静态库步骤:
gcc -c fun.c -o fun.o
ar rcv libfun.a fun.o
gcc main.c libfun.a
动态(链接)库 libxxx.so
动态链接进可执行程序 可执行程序较小
运行时需要可执行程序及库都存在
动态库生成步骤:(动态库名字必须以lib开头)
gcc -fPIC -shared fun.c fun1.c -o libfun.so
gcc main.c -lfun {-L ./lib}