Swift现在是开源版。有没有人试过编译Swift来获得Raspberry PI?我开始这样做,但我的8 GB SD卡似乎太小了;)是否可以从Ubuntu进行交叉编译?(Cross-)编译Swift for Raspberry PI
回答
8GB SD卡工作正常,但您需要扩展根卷。我有它的工作和/dev/root
分区上使用的空间大约3.1GB。
以下步骤基于Andrew Madsen的博客文章,稍微额外注重fdisk
中的步骤。
获得Ubuntu的
下载的Ubuntu 14.04的图像树莓派2从finnie.org并将其复制到SD卡上。启动树莓派。
改变分区
登录到树莓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
,然后在接下来的两个接受默认值的提示处按回车来重新创建分区。
再次输入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
安装libicu-dev的和铛-3交换文件。6
sudo apt-get install libicu-dev clang-3.6
使用更新的替代品,以提供铛和铛的/ 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 -
添加适当的库to sources.list:
echo "deb [arch=armhf] http://iachievedit-repos.s3.amazonaws.com/ trusty main" | sudo tee --append /etc/apt/sources.list
运行apt-get更新:
sudo apt-get update
安装斯威夫特
sudo apt-get install swift-2.2
安装完成后,您就可以编译斯威夫特程序!
写斯威夫特
打开文本编辑器,写一个程序,并保存(如为 'hello.swift'):
let device = "Raspberry Pi 2!"
print("Hello from Swift on \(device)")
编译
swiftc hello.swift
和运行它:
./hello
Hello from Swift on Raspberry Pi 2!
就是这样!在树莓派斯威夫特运行
很高兴知道这里有一个预编译的软件包。你/你能确认它是值得信赖的吗? - http://dev.iachieved.it声称拥有该桶。 +1。 – jweyrich
我已决定现在信任它:)在上面引用的博客上说:“William Dillon(@ hpux735)宣布他已经获得了Swift编译器,成功构建了armv7系统,比如BeagleBone,Raspberry Pi 2等。一段时间后,@iachievedit打包了William的工作,并通过apt-get为Debian和Ubuntu提供了可用的工具。' – Olaf
关于如何真正交叉*编译它会很好(例如,构建在OS X上,部署在Rasperry Pi)。 – adib
雨燕软件包管理器通过2017年四月
的 PR-1098 结束了自定义的工具链支持,我写了关于如何在这里建立一个树莓派工具链的详细说明:macOS -> RasPi Cross Compilation Toolchain 甚至反向(build macOS binaries on a RaspberryPi)为它的乐趣。 同样适用于Intel-Linux到ARM-Linux的最小修改。 SwiftPM回购版包含一个example script关于如何为Intel-macOS到Intel-Ubuntu做到这一点。
你可以在这里找到一个关于ARM上的Swift的2017-05-01更新: An Update on Swift 3.1.1 For Raspberry Pi Zero/1/2/3。
作为一个小总结,所以这个答案不只是链接;-),ARM状态2017年5月16日:
- 你可以在Ubuntu的树莓派 编译雨燕3.1/3.1.1
- 不要忘记安装swap,对于3.1.1需要一些最小的补丁 。 8GB的磁盘可能会有点小。
- 关于Raspbian的汇编似乎还没有工作(最后的已知版本 是3.0。2)
- 您可以使用雨燕的自定义工具链,这是 合理易于安装交叉编译
- 你需要抓住这一个SwiftPM快照(斯威夫特4)(但工具链本身可以是3.1或甚至3.0.2 w /小的变化)
- 你也可以运行(和编译)Swift via Docker, eg在HypriotOS。
- 存在对斯威夫特ARM松弛组:
swift-arm
- 1. Raspberry PI Cross在Ubuntu中编译QT GUI应用程序
- 2. RaspBerry Pi的交叉编译
- 3. Raspberry PI的交叉编译
- 4. 在Raspberry Pi上编译Haskell
- 5. 使用distcc在Raspberry pi上编译gnuradio
- 6. Raspberry Pi上的Dart SDK编译失败
- 7. 交叉编译Raspberry Pi的Linux内核
- 8. 编译Tetri Duel内核Raspberry Pi
- 9. 构建Raspberry Pi交叉编译器
- 10. JavaFx for ARM(Raspberry Pi/BeagleBoard)
- 11. 写Raspberry Pi程序,没有Raspberry Pi
- 12. Raspberry Pi的网络编程
- 13. 在Raspberry Pi2上编译libavg
- 14. Raspberry Pi:从Raspberry Pi卸载piJS
- 15. asm/socket.h:没有这样的文件或目录交叉编译Dart for Raspberry Pi
- 16. Socat on raspberry Pi for Serial over UDP
- 17. Raspberry PI AD8232
- 18. Accurev on Raspberry PI?
- 19. Raspberry PI + Wiegand RFID
- 20. Raspberry Pi Python ValueError?
- 21. Raspberry Pi Omxplayer OpenCV
- 22. plink on raspberry pi
- 23. Xamarin和Raspberry Pi
- 24. Raspberry Pi V4L2编译错误如何修复
- 25. Raspberry Pi Python
- 26. Raspberry Pi 5V输出
- 27. GHCi on raspberry pi 2?
- 28. Raspberry pi触摸屏
- 29. 针对ARM(Raspberry Pi)的交叉编译R
- 30. VisualGDB和Raspberry Pi
8GB太小?你能详细说明一下吗?即使iOS不占用8GB。 –
对于编译...有一个错误“致命错误:后端错误:IO输出流失败。” – Lupurus
是的,这似乎是一个磁盘空间不足的错误。互联网上的一些人有一些重启的成功。你可以编译到不同的位置,并检查产生的大小? –