Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK

2024-09-07 05:04

本文主要是介绍Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK

    • 工具
      • 1、w64devkit
      • 2、ndk
      • 3、cmake
    • 编译
      • 1、准备工作
      • 2、开始编译
    • 集成
      • 1、替换文件
      • 2、使用

工具

1、w64devkit

w64devkit
解压出来给个环境变量
w64devkit
验证一下
gcc

2、ndk

通过android studio安装
ndk
ndk\27.1.12297006\toolchains\llvm\prebuilt\windows-x86_64\bin下的clang.exe显示版本18.0.2,差别不是太大

3、cmake

同样通过android studio安装
cmake

编译

1、准备工作

下载llvm-18.1.8rel
此时
Hikari-LLVM15-llvm-18.1.8rel\llvm\lib\Transforms\Obfuscation

Hikari-LLVM15-llvm-18.1.8rel\llvm\include\llvm\Transforms\Obfuscation
都是空的
下载Hikari-LLVM15-Core到Hikari-LLVM15-llvm-18.1.8rel\llvm\lib\Transforms\Obfuscation
下载Hikari-LLVM15-Headers到Hikari-LLVM15-llvm-18.1.8rel\llvm\include\llvm\Transforms\Obfuscation

2、开始编译

参考
(1)windows上编译ollvm4.0并集成到ndk中
(2)Windows上编译ollvm9.0等高版本并使用
(3)WINDOWS环境下编译OLLVM替换到NDK环境
创建"MinGW Makefiles"

cmake -S llvm -B build -G "MinGW Makefiles" -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF

参考(3)中对各参数的解释如下
cmake
其中LLVM_ENABLE_NEW_PASS_MANAGER需在Hikari-LLVM15-llvm-18.1.8rel\llvm\CMakeLists.txt手动注释掉
cmake
Configuring Done后进入build目录,编译,等待完成

cd build
mingw32-make.exe -j8

集成

1、替换文件

将Hikari-LLVM15-llvm-18.1.8rel\build\bin下的clang.exe、clang++.exe、clang-cl.exe
替换到ndk\27.1.12297006\toolchains\llvm\prebuilt\windows-x86_64\bin目录
clang

2、使用

as的agp可能不是用的上述版本的ndk,需要在build.gradle.kts指定ndk版本

android {ndkVersion = "27.1.12297006"
}

启用混淆,同样在build.gradle.kts配置,更多用法参考HikariWiki

android {defaultConfig {externalNativeBuild{cmake{cppFlags("-mllvm -enable-allobf")}}}
}

这篇关于Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144133

相关文章

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

SpringBoot集成P6Spy的实现示例

《SpringBoot集成P6Spy的实现示例》本文主要介绍了SpringBoot集成P6Spy的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录本节目标P6Spy简介抛出问题集成P6Spy1. SpringBoot三板斧之加入依赖2. 修改

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

SpringBoot集成Shiro+JWT(Hutool)完整代码示例

《SpringBoot集成Shiro+JWT(Hutool)完整代码示例》ApacheShiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,在现代应用开发中,Shiro因... 目录一、背景介绍1.1 为什么使用Shiro?1.2 为什么需要双Token?二、技术栈组成三、环境

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心