「参与 Swift 开源」(一)—— 在 Linux 上编译、测试 Swift

发布于 2016-01-01

1997 2015 年过去了,我很怀念它。

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 的报错,不要多想,就是内存爆了,多试几次也许就成功了

Swift on Linux —— 从源码开始安装相关推荐

  1. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

  2. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  3. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

  4. Linux下源码编译安装新版libxcb

    前言 上一篇文章提到,linux 下编译Qt源码如果要用到Quick的话,那么运行时会依赖qxcb库,而编译生成qxcb库就需要先安装libxcb,并且最低要求 版本大于1.9.1 Requires ...

  5. git安装 perl ubuntu_【Git】Linux Ubuntu——源码编译安装Git 2.x 版本

    Git是一个开源的分布式版本控制系统,可以有效,高速的处理从很小到非常大的项目版本管理.Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持. ...

  6. Linux环境源码编译安装SVN

    zhoulf 2015/2/28 原创 安装说明 安装环境:Red Hat Enterprise Linux 安装方式:源码安装 软件:apr-1.5.0.tar.gz.apr-iconv-1.2.1 ...

  7. linux 编译配置文件,Linux程序源码编译安装的configure配置详解

    Linux环境下,如果通过源代码编译安装程序的简单过程可以 描述为:./configure-->make-->make install.其中./configure配置脚本功能就是对你的系统 ...

  8. Linux MySQL 源码编译安装

    文章目录 1. 源码包下载 2.解压 3.用户和组建立 4. 初始化数据库(相当于安装) 5. 开机启动设置 6. MySQL配置 7. 环境变量配置 8. MySQL启动/关闭 9. 登录与密码修改 ...

  9. Linux erlang 源码编译安装

    1.官网下载erlang源码 Downloads - Erlang/OTPThe official home of the Erlang Programming Languagehttps://www ...

最新文章

  1. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了
  2. Windows和Linux的C/C++ IDE选择
  3. SAP QM Batch to Batch的转移过账事务中的Vendor Batch
  4. Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
  5. 使用WireShark简单分析ICMP报文
  6. 【Linux 内核】CFS 调度器 ⑤ ( CFS 调度器类 fair_sched_class 源码 | next 赋值 | enqueue_task 赋值 | dequeue_task 赋值 )
  7. 计算机组成原理的实验课心得,计算机组成原理移位控制实验心得.docx
  8. AtCoder Beginner Contest 230
  9. BP神经网络预测实现
  10. (41)css 三大隐藏属性
  11. 用c语言编程图书管理系统,C语言图书管理系统简洁版
  12. 易语言API HooK CreateThread创建线程
  13. 信用卡积分能兑换现金,靠谱吗?
  14. java 登录失效时间_详谈Java设置session超时(失效)的时间
  15. WPS内嵌图片怎样使用Java获取图片?
  16. 区块链最好的编程语言是什么?
  17. PS 基础操作学习讲解帖列表
  18. KgoUI(2) 之 vue + layui
  19. 为WebApi项目添加注册功能:问题与解决的思维流程
  20. 微信公众号回调地址设置(实战详解)

热门文章

  1. 键盘上每个键作用!!! (史上最全的)­
  2. 函数闭包的方式实现lua面向对象
  3. 虚拟机与宿主机以外的局域网中的其它主机ping不通
  4. 关于人生的十句经典的话! .
  5. Spring Boot 学习系列(01)—从0到1,只需两分钟
  6. PHP全栈开发(八):CSS Ⅴ 超链接 style
  7. 手把手教你写网站:Python WEB开发技术实战
  8. 《中国人工智能学会通讯》——9.2 误差的本质
  9. 如何让产品用户拥有一流的上传体验
  10. 2017年3月份前端资源分享