Ubuntu下交叉编译nbis_v4_2_0为Android的步骤与技巧

5星 · 超过95%的资源 需积分: 15 10 下载量 28 浏览量 更新于2024-09-14 1 收藏 821B TXT 举报
本文主要介绍了如何在Ubuntu系统中,通过sudo su命令切换到超级用户root,并且详述了在Ubuntu环境下编译开源工程nbis_v4_2_0的过程,特别是针对Android手机平台进行交叉编译的步骤。该工程涉及到wsq压缩编码技术,编译时需要使用NDK(Native Development Kit)提供的交叉编译工具链。 在编译nbis_v4_2_0之前,首先需要设置环境变量。关键在于正确配置CC环境变量,使其指向NDK中对应的arm-linux-androideabi-gcc编译器,并指定sysroot路径,以便编译器知道如何处理针对Android架构的代码。环境变量设置如下: ```bash export SYSROOT=$NDK/platforms/android-14/arch-arm export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT" export PATH=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin:$PATH ``` 其中,NDK代表Android的原生开发工具包,用于构建C和C++库,这里的版本是r9。设置完环境变量后,可以开始对Makefile进行适当的修改,以适应交叉编译的需求。 在Makefile中,可能需要调整特定于目标平台的编译标志(如ARCH_FLAG),以及处理endianness的问题。如果项目中包含了其他依赖项,比如OpenJPEG库,根据需求可能需要禁用这些依赖。在示例中,通过运行一个名为jsacreat.sh的脚本来执行编译流程,这个脚本依次执行setup.sh、make config、make it和make install,其中`LIBNBIS=no`表示不编译NBIS库。 整个编译流程大致如下: 1. 运行setup.sh,可能用于初始化或配置项目。 2. 使用make config生成配置文件,根据配置选项调整编译参数。 3. 执行make it开始编译过程。 4. 最后,执行make install将编译好的库安装到指定位置。 需要注意的是,编译时选择的Android API级别是14,这决定了生成的库兼容的Android版本。如果需要支持更高版本的Android,需要将SYSROOT中的android-14替换为相应的API级别。 总结来说,wsq压缩编码是一种图像压缩技术,在nbis_v4_2_0开源工程中被应用。在Ubuntu系统上,开发者可以通过设置正确的环境变量和修改Makefile来实现对Android设备的交叉编译,使得该压缩编码技术能够在Android平台上运行。这个过程涉及到对NDK工具链的理解和熟练运用,以及对编译过程的细心配置。