我正在尝试在 Ubuntu 16.04 LTS 上编译 Swift 代码,如下这些说明相当接近。我能够下载 NDK r14,下载 libicu 工具并构建它们,然后下载 swift 源代码并针对 libicu 工具构建它。我一直到编译实际的 swift 代码并得到这个:
#build.sh
#(I symlinked the androideabi ld.gold to /usr/bin/ld.armv7, based on a swift bug ticket's advice. Thats the only thing different from the instructions)
/home/mike/workspace/swift-source/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swiftc \
-use-ld=armv7 \
-tools-directory /home/mike/workspace/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/arm-linux-androideabi/bin \
-target armv7-none-linux-androideabi \
-sdk /home/mike/workspace/android-ndk-r14/platforms/android-21/arch-arm \
-L /home/mike/workspace/android-ndk-r14/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a \
-L /home/mike/workspace/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9 \
hello.swift
#output
mike@mike-VirtualBox:~/workspace/HelloSwift$ ./build.sh
/usr/bin/ld.armv7: error: cannot find -lgcc
/usr/bin/ld.armv7: error: cannot find -lgcc
/usr/bin/ld.armv7: error: cannot find -lgcc
/usr/bin/ld.armv7: error: cannot find -lgcc
我在工具链中没有太多的经验,但我肯定已经安装了 gcc,并且设置了 gcc-multilib 和 LD_LIBRARY_PATH 来帮助 ld 找到 gcc,并且我已经使用 ldconfig 重建了 ld 缓存。
答案1
对于仍然想知道的人,在某些时候我已经设法移动其中一个二进制文件或以某种方式重命名其中一个目录,比如一些小linux-x86-64
东西linux-x64-64