Lup*_*rus 19 raspberry-pi swift raspberry-pi2
Swift现在是开源的.有人试过为Raspberry PI编译Swift吗?我开始做了,但我的8 GB SD卡似乎太小了;)是否可以从Ubuntu交叉编译?
8GB SD卡工作正常,但您需要扩展根音量.我有它工作,/dev/root分区上使用的空间大约3.1GB.
以下步骤基于Andrew Madsen的博客文章,稍微关注内部步骤fdisk.
从finnie.org下载Ubuntu 14.04 for Raspberry Pi 2的 图像并将其复制到SD卡上.启动Raspberry Pi.
登录Raspberry Pi并更改分区大小.默认大小为/dev/root1.7G,1.1G可用.这还不够.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 1.7G 540M 1.1G 35% /
devtmpfs 458M 4.0K 458M 1% /dev
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 93M 228K 93M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 462M 0 462M 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/mmcblk0p1 64M 20M 45M 31% /boot/firmware
Run Code Online (Sandbox Code Playgroud)
运行fdisk
sudo fdisk /dev/mmcblk0
Run Code Online (Sandbox Code Playgroud)
在提示符处输入p'print the partition table'.有两个分区
/dev/mmcblk0p1 * 2048 133119 65536 c W95 FAT32 (LBA)
/dev/mmcblk0p2 133120 3670015 1768448 83 Linux
Run Code Online (Sandbox Code Playgroud)
出现提示时,输入d(删除),然后输入2.然后,通过输入重新创建分区n,那么p,然后2,再按下在下一两个提示接受默认值输入.
p再次输入,看到第二个分区现在更大,现在使用8GB卡上的所有空间.
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 2048 133119 65536 c W95 FAT32 (LBA)
/dev/mmcblk0p2 133120 15523839 7695360 83 Linux
Run Code Online (Sandbox Code Playgroud)
输入w将更改写入磁盘,然后重新启动
sudo reboot
Run Code Online (Sandbox Code Playgroud)
重新启动后,通过运行调整分区文件系统的大小
sudo resize2fs /dev/mmcblk0p2
Run Code Online (Sandbox Code Playgroud)
通过执行设置交换文件
sudo apt-get install dphys-swapfile
Run Code Online (Sandbox Code Playgroud)
sudo apt-get install libicu-dev clang-3.6
Run Code Online (Sandbox Code Playgroud)
使用update-alternatives为clang和clang ++提供/ usr/bin链接:
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 100
Run Code Online (Sandbox Code Playgroud)
然后,添加@ iachievedit的存储库密钥:
wget -qO- http://dev.iachieved.it/iachievedit.gpg.key | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
将相应的存储库添加到sources.list:
echo "deb [arch=armhf] http://iachievedit-repos.s3.amazonaws.com/ trusty main" | sudo tee --append /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
运行apt-get update:
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
sudo apt-get install swift-2.2
Run Code Online (Sandbox Code Playgroud)
安装完成后,您就可以编译Swift程序了!
打开您喜欢的文本编辑器,编写程序并保存(例如'hello.swift'):
let device = "Raspberry Pi 2!"
print("Hello from Swift on \(device)")
Run Code Online (Sandbox Code Playgroud)
swiftc hello.swift
Run Code Online (Sandbox Code Playgroud)
并运行它:
./hello
Hello from Swift on Raspberry Pi 2!
Run Code Online (Sandbox Code Playgroud)
而已!Swift在Raspberry Pi上运行
Swift Package Manager 在 2017 年 4 月末通过PR-1098获得了自定义工具链支持 。
我在此处编写了有关如何构建 RaspberryPi 工具链的详细说明:macOS -> RasPi 交叉编译工具链 ,甚至相反(在 RaspberryPi 上构建 macOS 二进制文件)以获得乐趣。这同样适用于 Intel-Linux 到 ARM-Linux,只需少量修改。SwiftPM 存储库包含有关如何从 Intel-macOS 到 Intel-Ubuntu 执行此操作的示例脚本。
您可以在此处找到 Swift-on-ARM 的 2017-05-01 更新: 适用于 Raspberry Pi Zero/1/2/3 的 Swift 3.1.1 更新。
作为一个小总结,这个答案不仅仅是链接 ;-),ARM 状态 2017-05-16:
swift-arm| 归档时间: |
|
| 查看次数: |
3489 次 |
| 最近记录: |