gpt4 book ai didi

android - Android 版 Swift : `ld` cannot find `-lgcc` in swift for android compilation linking step

转载 作者:可可西里 更新时间:2023-11-01 00:57:19 26 4
gpt4 key购买 nike

从 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-ndk-r14b中,所需的gcc库位于:

/path/to/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x

Swift Android 文档似乎已经过时,并指出:

/path/to/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.

确保在调用 swiftc 时链接到此正确路径应该可以解决问题。

(我已提交 this pull request 以确保其他人也不会遇到此问题。)

关于android - Android 版 Swift : `ld` cannot find `-lgcc` in swift for android compilation linking step,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com