2015 年 12 月初,苹果面向未来的新编程语言 Swift 开源了!作为一种新的同时适应面向对象和面向过程两种编程范式的静态编译型语言,Swift 在语言设计、工具链完善度、基础库实现、官方推动力和开发者数量上都占有巨大的首发优势,Swift 的开源可以说是轰动全球软件开发界的大事。
Swift 的优势暂且不吹了,下面说点实在的:参与 Swift 开源第一步 —— 在 Linux 上编译、测试 Swift。
基础准备
Swift 语言开源项目可以在 https://github.com/apple/swift 找到。准备完毕。
安装依赖库
十分推荐使用傻瓜化的 Ubuntu 作为桌面 Linux 系统,软件新,更新快,大部分问题都可以使用 sudo apt-get install
来解决,十分方便,我使用的是最新版 15.10。
执行一句命令解决所有依赖:
sudo apt-get install git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config
如果你使用的是 14.04 LTS 或更早的版本,请参考 README 中相应的解决方案。
下载源码
下载源码分为两步。
第一步,下载 Swift 源码:
git clone https://github.com/apple/swift.git
第二步,下载依赖项目源码:
cd swift ./utils/update-checkout --clone
注:此处使用更快的 HTTPS 即可,如果想要贡献代码,请先 fork 到你自己的用户下,此处不再赘述。
编译并测试
下面就要开始真正激动人心的编译 + 测试环节了。运行命令:
utils/build-script -t
静候佳音
我用我那台弱小的配置着 2.1 GHz 的移动版 i3 CPU 和 8G 内存的迷你 PC 硬生生编译了 40 分钟,测试倒是挺快的 20 分钟之内就结束了。只要最终的结果里没有 Unexpected Failures
,那就说明本次编译成功了!下图是我的成功画面:
检验成果
运行命令:
../build/Ninja-DebugAssert/swift-linux-x86_64/bin/swift -v
如果你得到如下结果,那么恭喜你,Swift 编译成功!
Swift version 2.2-dev (LLVM 3ebdbb2c7e, Clang f66c5bb67b, Swift 1f2908b4f7) Target: x86_64-unknown-linux-gnu
写在最后
Swift 开源开得很彻底,在 Ubuntu 上编译甚至要比 MAC 下更简单,利用了一整套 Linux 社区的工具链,值得钦佩!
另外,如果你遇到类似 clang: error: unable to execute command: Killed
的报错,不要多想,就是内存爆了,多试几次也许就成功了:joy::joy::joy: