如何在ARM上运行swift和libDispatch(Raspberry Pi)

时间:2018-05-19 09:54:39

标签: swift arm libdispatch

目的是在Raspberry Pi 3上运行swift和libDispatch。我使用的是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文件。我仍然得到同样的错误,并且没有能够超越它。

作为背景,我正在使用来自https://github.com/uraimo/buildSwiftOnARM的Swift 3.1.1的预编译下载,并在我的系统上安装了Ubuntu libdispatch0和libdispatch-dev软件包和依赖项。 swift编译器和Swift包管理器工作正常,

我喜欢这样做,我在OS X上使用Dispatch,它使并发变得轻而易举。感谢

1 个答案:

答案 0 :(得分:0)

答案很简单......所需的额外信息在相关博客中。要获取并安装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目录添加到一个路径中(或者从usr / bin中运行swift,swift等)

注意:我还必须安装libpthread-workqueue-dev软件包。如果在Raspbian上运行,则需要升级到Stretch。

--- 顺便说一句,我在使用Raspberry 3时发布了SO问题。事实上,当我开始工作时,我就是早期的Pi模型B. Pi 3也将很快拥有Swift。这是一个测试libdispatch的简单Swift程序: -

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()