2011-11-22 661 views
2

我想交叉編譯arm編譯extundelete linux包。我想在我的Android設備上運行它。爲arm編譯交叉編譯e2fsprogs

當我試圖運行./configure它說Can't find ext2fs library。我發現問題是extundelete需要ext2fs庫。這個庫被放入e2fsprogs包中。

所以我試着跨編譯e2fsprogs。靜態編譯不是可行的,因爲看起來e2fsprogrs需要--enable-elf-shlibs才能正確運行make命令。我已經用命令構建了e2fsprogrs:

"./configure --host=arm-none-linux-gnueabi" CC=arm-none-linux-gnueabi-gcc --enable-elf-shlibs && make && make install && make install-libs. 

它運行正常,我得到了交叉編譯的e2fsprogs。問題是這是得到圖書館dinami編譯,我不會如何通過它extundelete交叉編譯,然後什麼檔案我不得不復制到我的Android設備。

我認爲這是可能的需要鏈接.so .a文件我在e2fsprogs交叉編譯中得到,但我不明白如何做到這一點。

在我的冒險之一交叉編譯extundelete我得到二進制臂extundelete文件,但這是編譯動態鏈接和使用共享庫。我試圖將extundelete binary和.so文件從e2fsprogs複製到我的Android設備,但它無法正常運行。

任何人都可以幫助我瞭解動態交叉編譯的精彩世界嗎?

回答

1

../configure --host = arm-none-linux-gnueabi -with-cc = arm-none-linux-gnueabi-gcc -with-linker = arm-none-linux-gnueabi-ld - -with-ldopts = - static --prefix =/tmp/target

0

請注意,較新版本(例如1.43)不再使用--with-cc或--with-ldopts。 --with-linker也不再使用。

改爲使用CC =和LDFLAGS =。 示例:

./configure --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc LDFLAGS=--static --prefox=/target/dirctory 

乾杯!