Windows上编译Renderdoc Android
最近用RenderDoc调试的时候发现GLES的glCopySubImageData
结果不太对,翻了下代码发现实现不是特别完整(只支持了整块拷贝的情况)。于是动手自己实现了一发,结果测试的时候居然卡在了一个编译安卓版本上。
之前我都是在Mac下编译的安卓,这次手头没有合适设备不得不研究了下如何在Windows上编译。关于这块网上资料比较少,CONTRIBUTING/Compiling.md
也语焉不详,因此就在这里记录下步骤。
首先是安装一些必备的库,包括Java、Android SDK、Android NDK等,这些都有现成的直接使用即可。
然后然后根据文档,Windows上需要装个bash shell
On Windows, you should always build Android from a bash shell - cygwin, msys2, Windows WSL, etc. Building from cmd may work but is not supported.
我一开始是尝试用的WSL,根据官方文档装上还是很方便的,但是发现调用不到环境里已有的NDK组件。为了省事就翻了翻其他几个可选项。这里参考Cygwin 和MinGW 的区别与联系是怎样的?里的整理:
- Cygwin 运行于Windows平台的POSIX子系统
- MinGW 进行Windows应用开发的GPU工具链
- MSYS 从老版本Cygwin剥离出来的小巧玲珑版本
- MSYS2 由于前者万年不更新…所以出来的新版本
我图省事,直接装了MSYS2确实很方便… 先安装编译需要的工具
pacman -S mingw-w64-x86_64-cmake |
cmake和make不用多说,肯定是用的上的。然后gcc和git是我踩坑之后才发现需要安装的东西:
- renderdoc在交叉编译的时候需要使用include-bin跑一些步骤,所以不是一开始我想的只需要保证NDK工具链就行,宿主机上的gcc也是需要的;
- 另外renderdoc会默认把git的commit hash生成进版本号,然后安卓和PC版本通信时进行校验,所以git也是需要安装的。
此外我还修改了一个CMake文件,里面的逻辑有点奇怪会导致找不到JDK
renderdoccmd/CMakeLists.txt | 2 +- |
接下来就非常简单,参考文档里的步骤即可:
mkdir build-android |
mkdir build-android64 |
最后打包出来的俩apk塞进renderdoc\x64\Development\plugins\android
,全套流程完成。