WSL1 中使用 Android NDK
android-ndk-r25b 为例
最近需要编译iconv+zbar,以前的太老了,打算用最新版试试,又不想开个linux的虚拟机,直接在WSL1下跑NDK,
WSL1 对NDK 有个BUG,微软一直没修。
具体参见:
https://github.com/android/ndk/issues/1755
NDK自带clang因为某个我没细看的二进制优化,导致他的段对齐WSL1支持,运行 clang-14会报错:
./clang-14: cannot execute binary file: Exec format error
https://github.com/microsoft/WSL/issues/5875 给我灵感
安装 patchelf 工具
sudo apt-get install patchelf
执行
patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 /home/binsys/work/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang-14
ok,NDK可以在WSL1下跑了。
别问我为啥不开WSL2...我直接开VMWARE好不好?