[swift-users] Statically linked binaries on linux

Joel Hughes rudenoise at gmail.com
Fri Sep 2 15:48:16 CDT 2016


Hello again,

I've been attempting add to the swift-build script so that Foundation can
be compiled as a static lib. Simialr to

> swift/utils/build-script -r --build-swift-static-stdlib --foundation

I'm not familiar with Cmake, ninja and the way the swift is built but have
got the build working. I have a few questions:

Can a libFoundation.a file be compiled from the .o files that are created
while building libFoundation.so?

Is there a guide or recommended tutorial for Cmake and ninja that might be
suitable for a novice, like me?

Are there any documents that give an overview of how the build fits
together and where I should be looking to add functionality? I can't quite
work out how the build script transitions to ninja and clang.

Hope that makes some sense?

Thanks

Joel

On 1 September 2016 at 17:13, Joel Hughes <rudenoise at gmail.com> wrote:

> Hi,
>
> I'm attempting to get a statically linked binary and am running into
> errors.
>
> I'm using Swift 3 Preview 6 on Ubuntu.
>
> Regular _swift build_ and _swift test_ are all running fine.
>
> I can produce a static binary for a simple "hello world" using:
>
> swift build -c release -Xswiftc -static-stdlib
>
> (although I do get error while loading shared libraries: libicui18n.so.55
> when running in a basic vm).
>
> However I can't compile a more complicated project. It's only dependency
> is Foundation (it uses NSUUID, and JSON) and can't seem to find them.
>
> I get a stream of errors, examples:
>
> Linking ./.build/release/joke
> /usr/bin/ld.gold: error: cannot find -lFoundation
> ...
> error: undefined reference to '_TMaC10Foundation6NSUUID'
> ...
> error: undefined reference to '_TFC10Foundation6NSUUIDCfT10uui
> dStringSS_GSqS0__'
>
> Any pointers or advice much appreciated.
>
> Thanks
>
> Joel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160902/a6bf61b5/attachment.html>


More information about the swift-users mailing list