Как запустить swift и libDispatch на ARM (Raspberry Pi) - PullRequest
0 голосов
/ 19 мая 2018

Цель - запустить 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, поэтому я скопировал проект Sheffler CDispatch в https://github.com/tree700/CDispatch и добавил файл Package.swift. Я все еще получаю ту же ошибку и не могу ее преодолеть.

В качестве фона я использую предварительно скомпилированную загрузку Swift 3.1.1от https://github.com/uraimo/buildSwiftOnARM, и установили пакеты и зависимости Ubuntu libdispatch0 и libdispatch-dev на мою систему. Компилятор swift и диспетчер пакетов Swift работают нормально,

Я бы хотел, чтобы это продолжалось, яиспользуйте Dispatch на OS X, и ят делает параллелизм бризом.Спасибо

1 Ответ

0 голосов
/ 03 июня 2018

Ответ был прост ... дополнительная информация в соответствующем блоге.Чтобы получить и установить 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()
...