环境
  • NDK:24.0.8215888
  • Golang:1.17
需求

一个简单的 golang 项目,由于里面包含了,因此交叉编译到 Android 平台需要使用 CGO 。

使用了这样的编译方法

LD_FLAGS="-w -s -extldflags \"-static -fpic\" -buildid="
TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64
CGO_ENABLED=1 \
  GOARCH=arm64 \
  GOOS=android \
  CC=$TOOLCHAIN/bin/aarch64-linux-android32-clang \
  CXX=$TOOLCHAIN/bin/aarch64-linux-android32-clang++ \
  go build -a -ldflags "$LD_FLAGS" -o "$PUBLISH_DIR/binary-android-arm64-v8a" "$PROJECT_NAME"

结果提示:

aarch64-linux-android32-clang failed: exit status 1
ld: error: unable to find library -llog
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)

各位大佬们,是我需要额外指定一些参数告诉 CGO 从哪里查找库吗?