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
是的,這似乎是一個磁盤空間不足的錯誤。互聯網上的一些人有一些重啓的成功。你可以編譯到不同的位置,並檢查產生的大小? –