Swift现在是开源的。有人试过为Raspberry PI编译Swift吗?我开始做了,但我的8 GB SD卡似乎太小了;)是否有可能从Ubuntu交叉编译它?
答案 0 :(得分:7)
8GB SD卡工作正常,但您需要扩展根音量。我有它工作,/dev/root
分区上的已用空间大约是3.1GB。
以下步骤基于Andrew Madsen的博文,稍微关注fdisk
内的步骤。
从finnie.org下载用于Raspberry Pi 2的Ubuntu 14.04的图像并将其复制到SD卡上。启动Raspberry Pi。
登录Raspberry Pi并更改分区大小。 /dev/root
的默认大小为1.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
运行fdisk
sudo fdisk /dev/mmcblk0
在提示符处输入p
以获取“打印分区表”。有两个分区
/dev/mmcblk0p1 * 2048 133119 65536 c W95 FAT32 (LBA)
/dev/mmcblk0p2 133120 3670015 1768448 83 Linux
出现提示时,输入d
(删除),然后输入2
。然后,通过输入n
,然后p
,然后2
重新创建分区,然后在接下来的两个提示中按Enter键接受默认值。
再次输入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
输入w
将更改写入磁盘,然后重新启动
sudo reboot
重新启动后,运行
调整分区文件系统的大小sudo resize2fs /dev/mmcblk0p2
通过执行
设置交换文件sudo apt-get install dphys-swapfile
sudo apt-get install libicu-dev clang-3.6
使用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
然后,添加@ iachievedit的存储库密钥:
wget -qO- http://dev.iachieved.it/iachievedit.gpg.key | sudo apt-key add -
将相应的存储库添加到sources.list:
echo "deb [arch=armhf] http://iachievedit-repos.s3.amazonaws.com/ trusty main" | sudo tee --append /etc/apt/sources.list
运行apt-get update:
sudo apt-get update
sudo apt-get install swift-2.2
安装完成后,您就可以编译Swift程序了!
打开您喜欢的文本编辑器,编写程序并保存(例如'hello.swift'):
let device = "Raspberry Pi 2!"
print("Hello from Swift on \(device)")
swiftc hello.swift
并运行它:
./hello
Hello from Swift on Raspberry Pi 2!
就是这样! Swift在Raspberry Pi上运行
答案 1 :(得分:4)
Swift Package Manager通过自定义工具链支持 PR-1098 2017年4月底。
我在这里写了关于如何构建RaspberryPi工具链的详细说明:macOS -> RasPi Cross Compilation Toolchain 甚至反过来(build macOS binaries on a RaspberryPi)以获得它的乐趣。 这同样适用于Intel-Linux到ARM-Linux的最小修改。 SwiftPM repo包含example script关于如何为Intel-macOS执行此操作到Intel-Ubuntu。
你可以在这里找到关于Swift-on-ARM的2017-05-01更新: An Update on Swift 3.1.1 For Raspberry Pi Zero/1/2/3
作为一个小小的总结,所以这个答案不仅仅是链接;-),ARM状态2017-05-16:
swift-arm