【Android】Windows平台下编译LibjpegTurbo的静态库.a文件和动态库.so文件

LibjpegTurbo:

既然你看到这篇文章了,大概了解了LibjpegTurbo的作用了。这里不做多的介绍,官方生成LibjpegTurbo速度能提升2-6倍,根据实际测试,Turbo版本确实有提升,但是1.5.x版本和2.0.x版本速度差距较大,我们选择最新的release版本libjpeg2.0.2,在这里下载:https://sourceforge.net/projects/libjpeg-turbo/  Git地址自行搜索。

 

编译方法:

  1. cmake+nasm+mingw编译静态库
  2. Androidstudio编译动态库

AndroidStudio自带cmake编译工具和NDK,提供非常便捷的编译方式。我们首先介绍方法一。

 

Androidstudio编译动态库:

  1. AS下载cmake和ndk,还需要自行下载一份ndk-16b,因为libjpegturbo编译可能对NDK有要求,如果在ndk-20上出现问题,可以换用ndk-16
  2. 下载2.0.x以上源码,不建议1.5.x
  3. 用AS创建C++项目,将源码放在cpp目录下面,如下图:
  4. 配置build.gradle,选择cmake path如下:
  5.  externalNativeBuild {
            cmake {
                path "src/main/cpp/libjpeg-turbo-1.5.3/CMakeLists.txt"
                version "3.10.2"
            }
        }
  6.  externalNativeBuild {
                cmake {
                    cppFlags "-std=c++11"
                    //cppFlags "-std=c++11 -frtti -fexceptions"
                    //arguments "-DANDROID_PLATFORM=22"
                    // Passes optional arguments to CMake.
                    arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"
                    // Sets optional flags for the C compiler.
                    cFlags "-D_EXAMPLE_C_FLAG1", "-D_EXAMPLE_C_FLAG2"
                    // Sets a flag to enable format macro constants for the C++ compiler.
                    cppFlags "-D__STDC_FORMAT_MACROS"
                }
    
                ndk {
                    abiFilters 'armeabi-v7a','arm64-v8a','x86', 'x86_64'
                    //abiFilters "arm64-v8a"
                }
    
            }

    配置好后,在上方build中选择make project。

  7. 同时尽量选择release版本,因为debug和release编译的so文件,实际测试速度差异巨大,release版本要快很多。配置如下图:

  8. 生成的so文件在build-cmake目录下查找,记得copy出来,clean下就没了

 

原生cmake编译:

需要的软件环境:

  1. libjpeg-turbo 源码
    libjpeg-turbo官网下载源码,建议使用2.0.x
  2. CMake

    • CMake v2.8.8 或以上版本,安装时勾选“Add CMake to the system PATH ...”,或把CMake安装路径手动添加到系统环境变量PATH中。
    • 安装完之后在命令提示符工具中使用“cmake -version”验证是否安装配置成功。
  3. MinGW

    • 如果在Windows系统上构建,推荐使用MinGW-buildstdm-gcc。它们能够在开始菜单生成一个启动相应编译器的命令提示符链接。
    • 由于本机安装了MinGW,所以就不再需要上面提到的那两个工具了,只需确保“mingw32-make.exe”的安装路径在系统环境变量PATH中即可。
    • 安装完之后在命令提示符工具中使用“mingw32-make -version”验证是否安装配置成功。
  4. NASM
    NASM0.98 或以上版本(如果构建64位库则需要NASM 2.05或以上版本)。下载NASM后解压,只需把NASM目录手动添加到系统环境变量PATH中即可。

编译:

  1. 源码目录创建build文件夹
  2. 打开cmd
cd {build_directory}
cmake -G "MinGW Makefiles" {source_directory}
mingw32-make

最后等到编译完成就可以了。目录如下:

 

附上我编译的文件:https://download.csdn.net/download/qq_36332133/11670965

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值