【发布时间】:2017-03-30 17:23:11
【问题描述】:
从 Unix Stack Exchange 移动到这里,我的赏金失败了:
我正在尝试在 Ubuntu 16.04 LTS 上编译 Swift 代码,非常接近 these instructions。我可以下载 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 缓存.
当我运行sudo ldconfig -p | grep gcc 时,我得到了
libgccpp.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgccpp.so.1
libgcc_s.so.1 (libc6,x32) => /usr/libx32/libgcc_s.so.1
libgcc_s.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcc_s.so.1
libgcc_s.so.1 (libc6) => /usr/lib32/libgcc_s.so.1
还有其他一些名为libuno_<something with gcc in it>的东西
【问题讨论】:
标签: android swift ubuntu gcc android-ndk