移植e2fsprogs到arm平臺(tái)
也就是一般的交叉編譯。
本文引用地址:http://www.ex-cimer.com/article/201611/317677.htm由于e2fsprogs通常會(huì)用到動(dòng)態(tài)庫(kù),這里為了方便起見(jiàn),采用了靜態(tài)鏈接。
這樣的話,向arm平臺(tái)拷貝時(shí),就不需要再關(guān)心動(dòng)態(tài)庫(kù)的問(wèn)題了。
具體操作過(guò)程如下:
tar -xzf e2fsprogs-1.42.5.tar.gz
cd e2fsprogs-1.42.5
mkdir release
cd release/
../configure --host=arm-linux CC=arm-linux-gcc LDFLAGS=-static
make
好了,現(xiàn)在release下面的各個(gè)目錄下,已經(jīng)有相應(yīng)的可執(zhí)行程序生成了。
將他們直接拷到arm平臺(tái)下即可使用了。
當(dāng)然,如果單板flash空間緊張的話,則可以將部分功能編譯成動(dòng)態(tài)庫(kù)。
方法如下:
../configure --host=arm-linux CC=arm-linux-gcc --enable-elf-shlibs
make
好了,release下面的相應(yīng)子目錄中已經(jīng)生成了可執(zhí)行文件及動(dòng)態(tài)庫(kù)。
接下來(lái)要拷貝文件了。
假如我們需要release/misc/mke2fs這個(gè)程序。
那么首先用readelf看看mke2fs需要使用哪些動(dòng)態(tài)庫(kù)。
[root@localhost relaese]# readelf -d misc/mke2fs
Dynamic section at offset 0x11474 contains 30 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libext2fs.so.2]
0x00000001 (NEEDED) Shared library: [libcom_err.so.2]
0x00000001 (NEEDED) Shared library: [libblkid.so.1]
0x00000001 (NEEDED) Shared library: [libuuid.so.1]
0x00000001 (NEEDED) Shared library: [libe2p.so.2]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.0]
可以看出一共需要7個(gè)庫(kù)。由于最后兩個(gè)是標(biāo)準(zhǔn)C庫(kù),板子上本來(lái)就有。
因此,我們只需要拷貝前5個(gè)即可。
好了,我們先將release/lib目錄下對(duì)應(yīng)的5個(gè)動(dòng)態(tài)庫(kù)拷貝到單板的/lib目錄下,
然后將release/misc/mke2fs拷貝到單板的/sbin目錄下即可。
評(píng)論