使用到的工具(点击即可去下载):
android studio 4.2.2(点我进入历史版本下载页面)
ndk 21.4.7075529(android studio上下载的)
cmake 3.10.2.4988404(android studio上下载的)
1. 配置环境变量
这是我的路径,替换成你的
C:\Users\admin\Downloads\llvm-mingw-20230130-msvcrt-x86_64\llvm-mingw-20230130-msvcrt-x86_64\bin
G:\jre\Android\Sdk\cmake\3.10.2.4988404\bin
2. 解压llvm-9.0.1,打开文件夹,在根目录下创建一个bulid文件夹
3. 在build文件夹里创建一个CMakeLists.txt文件,里面啥也不用写(不创建这个文件第5步会报错说CMakeLists.txt不存在)
4. 使用cmd cd到这个build文件夹
5. 执行配置命令
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ../
6. 执行编译命令(注意:这里的-jxx说的是运行的线程数,根据你的电脑配置来自定义,设置越大则编译越快,我电脑不太行,所以设置的8)
mingw32-make.exe -j8
7. 等待它编译即可
编译完成的截图:
8. 复制头文件
\obfuscator-llvm-9.0.1\build\lib\clang\9.0.1\include
把上面这个目录下的头文件(__stddef_max_align_t.h、stddef.h、stdarg.h、float),复制到下面这个目录下
\Android\Sdk\ndk\21.4.7075529\sysroot\usr\include
复制头文件截图:
9. 把编译出的文件,替换ndk中的clang.exe、clang++.exe、clang-format.exe
编译后的文件在:
\obfuscator-llvm-9.0.1\build\bin
10. 打开android studio,在工程中的CMakeLists.txt添加这个配置(下面的参考文章说的有是什么意思)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mllvm -sub -mllvm -sobf -mllvm -fla ")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mllvm -sub -mllvm -sobf -mllvm -fla")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -mllvm -sub -mllvm -sobf -mllvm -fla" )
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -mllvm -sub -mllvm -sobf -mllvm -fla" )
参考文章:
Windows上编译ollvm9.0等高版本并使用 - 怎么可以吃突突 - 博客园 (cnblogs.com)
win10 OLLVM编译环境搭建 并且实现Android jni 字符串加密 - 别人眼中的过客 - 博客园 (cnblogs.com)