我在开发领域还是个新手(wiht linux和交叉编译),我正在尝试交叉编译openssl库,让arm android设备在以后的另一个项目中使用它。为此,我使用android提供的ndk r17c预构建工具链。我需要使用这个,因为我已经用这个工具链交叉编译了其他库,我需要在同一个项目中使用所有这些库。

我以前尝试过其他ndk版本(15c,18b…),但没有人能比我更好地工作。我还尝试了我以前构建的独立工具链,它使用了clang编译器,但没有使用gcc one。正如我前面所说的,最后我不能使用这个独立的工具链,因为我把我的库的主要部分与预构建的工具链进行了交叉编译(只有OpenSSL和LIPSH2还没有编译)。

因此,为了编译这个,我使用openssl的配置文件,如下所示:

./Configure os/compiler:/home/user/Documents/NDK/android-ndk-r17c-linux-x86_64/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc \

--prefix=/home/user/Documents/SSLcompile threads \

-I/home/user/Documents/NDK/android-ndk-r17c-linux-x86_64/android-ndk-r17c/sysroot/usr/include \

-L/home/user/Documents/NDK/android-ndk-r17c-linux-x86_64/android-ndk-r17c/sysroot/usr/lib/arm-linux-androideabi

然后我继续进行“make depend”,它正在工作,然后“make”(或“make install”)失败。

我得到了这些错误,我无法解决它们:

/home/user/Documents/NDK/android-ndk-r17c-linux-x86_64/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory

/home/user/Documents/NDK/android-ndk-r17c-linux-x86_64/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory

我知道这些文件在路上

/home/user/Documents/NDK/android-ndk-r17c-linux-x86_64/android-ndk-r17c/platforms/android-21/arch-arm/usr/lib

但是我试图给出配置路径的所有操作都失败了。

你能给我一些我错过的元素,我做的不对吗?

谢谢!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐