通过arm-linux-3.4.1的交叉编译 e2fsprogs-1.39.tar.gz

下载地址:
http://nchc.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.39.tar.gz

具体参见文档说明:
前提:交叉编译工具已经安装好:

step 1:
解压:e2fsprogs-1.39.tar.gz 到 e2fs目录下
step 2:
# cd e2fs
step 3:
#mkdir build
#cd  build
#../configure --host=arm-linux --enable-elf-shlibs--with-cc=arm-linux-gcc --with-linker=arm-linux-ld --

prefix=/usr/local/arm/3.4.1/arm-linux

step 4:
#make

这个是我出现了问题:./util/subst command not found
解决方法:subst在build的上一目录的util里面可以找到subst,链接到build/util/下面问题解决。

step 5:
接着#make
新问题产生error: variable or field `__user' declared void
解决方法:arm-linux-gcc 3.4.1编译e2fsprogs-libs的时候报告错误fd.h:342: error: variable or field `__user’ declared

void,经查gcc 3.4.1中新增类型 __user ,需要引入编译器定义头文件,在引用#include <linux/fd.h>的前面加上#include

<linux/compiler.h>,可以解决这个编译错误

step 6:
#make
如果还有error: variable or field `__user' declared void
那么请执行make clean,重新做step 3 & step 4。
至此问题解决。

 

注:step 5:问题感谢http://www.edacn.net/?72210 ,hkxyc在我之前已经遇到了这个问题,省去了我不少时间.


 

你可能感兴趣的:(通过arm-linux-3.4.1的交叉编译 e2fsprogs-1.39.tar.gz)