다음과 같이 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가 설치되어 있고 ld가 gcc를 찾는 데 도움이 되도록 gcc-multilib 및 LD_LIBRARY_PATH를 설정했으며 ldconfig를 사용하여 ld 캐시를 다시 구축했습니다.
답변1
아직도 궁금해하시는 분들을 위해 말씀드리자면, 어느 시점에서 저는 바이너리 중 하나를 이동했거나 디렉토리 중 하나의 이름을 작은 일처럼 바꿨습니다 linux-x86-64
.linux-x64-64