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好不好?

 

posted @ 2022-09-26 15:52  BinSys  阅读(448)  评论(0编辑  收藏  举报