Compiler errors NDK静态库项目没有';t为arm64-v8a编译
我正在尝试使用android-ndk-r13b构建一个静态库(cocos2d)。 我有Android.mk用于静态库项目,并且指定了Compiler errors NDK静态库项目没有';t为arm64-v8a编译,compiler-errors,ld,ndk-build,Compiler Errors,Ld,Ndk Build,我正在尝试使用android-ndk-r13b构建一个静态库(cocos2d)。 我有Android.mk用于静态库项目,并且指定了 APP_ABI := armeabi armeabi-v7a arm64-v8a 目标体系结构的列表。问题是arm64-v8a无法在最后一步(链接)的基础上构建 make生成以下输出: collect2: fatal error: cannot find 'ld' compilation terminated. 我不明白,怎么了。此实用程序确实存在。我可以
APP_ABI := armeabi armeabi-v7a arm64-v8a
目标体系结构的列表。问题是arm64-v8a无法在最后一步(链接)的基础上构建
make生成以下输出:
collect2: fatal error: cannot find 'ld'
compilation terminated.
我不明白,怎么了。此实用程序确实存在。我可以从终端运行它
ld -v
@(#)PROGRAM:ld PROJECT:ld64-253.3
configured to support archs: i386 x86_64 x86_64h armv6 armv7 armv7s armv7m armv7k arm64 (tvOS)
LTO support using: LLVM version 3.7.1
它表示支持arm64。
我不明白我现在该往哪个方向挖。
armeabi-armeabi-v7a
编译得很好,我得到了两个.so文件。看来我找到了一个解决方案,或者更确切地说,找到了一个解决办法。
我完全控制了通过make
运行的ndk构建,并添加了ndk_LOG=1标志。它给了我一个线索。链接器正在尝试从运行
~/Library/android/ndk/android-ndk-r13b/toolschains/aarch64-linux-android-4.9/prebuilded/darwin-x86\u 64/aarch64-linux-android/bin/
这是nkd build试图查找ld
可执行文件的路径。我在这个目录中没有找到ld
本身,但是有ld.bfd
和ld.gold
可执行文件(因为我相信它们是特定于linux平台的)。因此,我刚刚创建了一个符号链接ld~>ld.gold
,然后构建成功