Macos下交叉编译安卓的paq8px压缩算法

官方没有android的编译方法,自己编写脚本在macos下交叉编译.

下载源码: git clone https://github.com/hxim/paq8px.git

稍旧的ndk并不能编译成功,需要下载最新的ndkr27c, 最后是使用clang来编译。

复制代码
编译build.sh
复制代码
export ANDROID_NDK=/Volumes/data/Codes/AndroidNDK12479018.app/Contents/NDK



cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
	-DANDROID_ABI="arm64-v8a" \
	-DANDROID_NDK=$ANDROID_NDK \
	-DANDROID_PLATFORM=android-31 \
	..

make

修改paq8px/CMakeLists.txt, 如下,去掉clang++不支持的-march=nocona和-floop-strip-mine

复制代码
复制代码
if (NATIVECPU)
    add_definitions(-march=native -mtune=native)
else ()
#    add_definitions(-march=nocona -mtune=generic)
     add_definitions(-mtune=generic)
endif (NATIVECPU)

if (DISABLE_ZLIB)
    add_definitions(-DDISABLE_ZLIB)
endif (DISABLE_ZLIB)

if (NDEBUG)
    add_definitions(-DNDEBUG)
endif (NDEBUG)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#set(CMAKE_CXX_FLAGS "-O3 -floop-strip-mine -funroll-loops -ftree-vectorize -fgcse-sm -falign-loops=16")
set(CMAKE_CXX_FLAGS "-O3 -funroll-loops -ftree-vectorize -fgcse-sm -falign-loops=16")

运行编译,成功

复制代码
mkdir mybuild
cd mybuild
chmod +x ../build.sh


$ ../build.sh
-- The C compiler identification is Clang 18.0.3
-- The CXX compiler identification is Clang 18.0.3
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Volumes/data/Codes/AndroidNDK12479018.app/Contents/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Volumes/data/Codes/AndroidNDK12479018.app/Contents/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ZLIB: /Volumes/data/Codes/AndroidNDK12479018.app/Contents/NDK/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/31/libz.so (found version "1.3.0.1")
-- IPO / LTO enabled
-- Configuring done (3.1s)
-- Generating done (0.0s)
-- Build files have been written to: /Volumes/evo2T/src/paq8px/androidbuid
[  1%] Building CXX object CMakeFiles/paq8px.dir/ProgramChecker.cpp.o
....
2 warnings generated.
[ 97%] Building CXX object CMakeFiles/paq8px.dir/StateMapPair.cpp.o
clang++: warning: optimization flag '-fgcse-sm' is not supported [-Wignored-optimization-argument]
[ 98%] Building CXX object CMakeFiles/paq8px.dir/SimdMixer.cpp.o
clang++: warning: optimization flag '-fgcse-sm' is not supported [-Wignored-optimization-argument]
[100%] Linking CXX executable paq8px
相关推荐
科技道人25 分钟前
Android15 launcher3
android·launcher3·android15·hotseat
CYRUS_STUDIO5 小时前
FART 脱壳某大厂 App + CodeItem 修复 dex + 反编译还原源码
android·安全·逆向
Shujie_L7 小时前
【Android基础回顾】四:ServiceManager
android
Think Spatial 空间思维8 小时前
【实施指南】Android客户端HTTPS双向认证实施指南
android·网络协议·https·ssl
louisgeek9 小时前
Git 使用 SSH 连接
android
二流小码农9 小时前
鸿蒙开发:实现一个标题栏吸顶
android·ios·harmonyos
Hello.Reader9 小时前
Git 安装全攻略Linux、macOS、Windows 与源码编译
linux·git·macos
Hope Fancy9 小时前
macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库
macos·docker·postgresql
John Song9 小时前
macOS 上使用 Homebrew 安装redis-cli
数据库·redis·macos
yanjiee9 小时前
编译一个Mac M系列可以用的yuview
macos