我正在尝试为arm交叉编译extundelete linux包。我想在我的Android设备上运行它。
当我尝试运行./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。问题是,这是以动态方式编译的库,我不知道如何将它传递给extundelete交叉编译,然后我必须将哪些归档文件复制到我的android设备上。
我认为有可能需要链接我在e2fsprogs交叉编译中得到的.so .a文件,但我并不确切地知道如何做到这一点。
在我的一次冒险中,交叉编译extundelete,我得到了二进制arm extundelete文件,但这是动态编译的,并使用共享库。我试图将e2fsprogs中的extundelete二进制和.so文件复制到我的安卓设备上,但它不能正常运行。
有人能帮助我理解动态交叉编译的奇妙世界吗?
发布于 2012-10-31 18:00:09
../configure --host=arm-none-linux-gnueabi --with-cc=arm-none-linux-gnueabi-gnueabi --with-linker=arm-none-linux-gnueabi-ld --with-ldopts=--static --prefix=/tmp/target
发布于 2016-06-08 20:16:14
请注意,较新的版本(例如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干杯!
https://stackoverflow.com/questions/8223675
复制相似问题