Как запустить swift и libDispatch на ARM (Raspberry Pi)
Цель - запустить swift и libDispatch на Raspberry Pi 3. Я использую Ubuntu Core 16.04
Где я нахожусь: я попытался получить SR-397 ( https://bugs.swift.org/browse/SR-397) для компиляции - это минимальный пример Swift libDispatch. Проекты для этого SR находятся здесь: https://github.com/sheffler/gcd4 и здесь: https://github.com/sheffler/CDispatch
Когда я пытаюсь скомпилировать проект gcd4, я получаю эту ошибку: "ошибка: пустой файл манифеста больше не поддерживается. использование swift package init
для автоматического создания ". Я предположил, что сообщение об ошибке было связано с пустым файлом Package.swift, поэтому я скопировал проект CDSpatch Sheffler в https://github.com/tree700/CDispatch и добавил файл Package.swift. Я все еще получаю ту же ошибку и не смог ее преодолеть.
В качестве справки, я использую предварительно скомпилированную загрузку Swift 3.1.1 с https://github.com/uraimo/buildSwiftOnARM, и установил пакеты и зависимости Ubuntu libdispatch0 и libdispatch-dev в мою систему. Swift-компилятор и Swift Package Manager работают нормально,
Я бы хотел, чтобы это было сделано, я использую Dispatch на OS X, и это делает параллелизм быстрым. Спасибо
1 ответ
Ответ был прост... дополнительная информация в соответствующем блоге. Для получения и установки Swift 3.1.1 перейдите по https://www.uraimo.com/2017/09/06/A-small-update-on-Swift-for-raspberry-pi-zero-1-2-3/ Который говорит, чтобы сделать это...
sudo apt-get install git cmake ninja-build clang-3.8 python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config libblocksruntime-dev libcurl4-openssl-dev autoconf libtool systemtap-sdt-dev
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 100
После этого происходит обычный процесс распаковки сжатого файла проекта и добавления каталога usr / bin в свой путь (или запуска swift, swift и т. Д. Изнутри usr/bin)
Примечание: мне также пришлось установить пакет libpthread-workqueue-dev. Если работает на Raspbian, требуется обновление до Stretch.
——— Между прочим, я опубликовал вопрос SO при использовании Raspberry 3. На самом деле, я работал над ранней моделью Pi, когда у меня получилось. У Pi 3 скоро также будет Swift. Вот простая программа Swift для тестирования libdispatch:-
import Foundation
import Dispatch
let queue = DispatchQueue(label: "queueName")
let workItem = DispatchWorkItem(qos: .userInitiated, flags: .assignCurrentContext) {
print("Hello")
}
queue.async(execute: workItem)
DispatchQueue.main.async {
print("Hello2")
}
dispatchMain()