Linux中的Swift:使用未解析的标识符’dispatch_async’

Linux中的Swift:使用未解析的标识符’dispatch_async’,第1张

概述我编译了libdispatch. 这段代码有效: import Dispatchvar lockQueue = dispatch_queue_create("com.test.async", nil); 但是如果我把这段代码放到结束文件中: dispatch_async(lockQueue) { print("test1");} 我收到一个错误: use of unresolved i 我编译了libdispatch.
这段代码有效:

import dispatchvar lockQueue = dispatch_queue_create("com.test.async",nil);

但是如果我把这段代码放到结束文件中:

dispatch_async(lockQueue) {    print("test1");}

我收到一个错误:

use of unresolved IDentifIEr ‘dispatch_async’

解决方法 正如我在上面评论的那样,它似乎是 a current limitation with the Swift Package Manager.它目前不支持添加适当的编译时选项,例如支持块作为GCD函数输入所需的选项(-Xcc -fblocks).

在此期间,您可以避免使用Swift包管理器并使用swiftc直接编译文件,并使用适当的选项.谢夫勒在their test repository提供了一个例子:

swiftc -v -o gcd4 Sources/main.swift -I .build/deBUG -j8 -Onone -g -Xcc -fblocks -Xcc -F-module-map=Packages/Cdispatch-1.0.0/module.modulemap -I Packages/Cdispatch-1.0.0 -I /usr/local/include

-I选项将为libdispatch提供模块映射,因此请调整它们以匹配实际放置这些系统模块目录的位置.

总结

以上是内存溢出为你收集整理的Linux中的Swift:使用未解析标识符’dispatch_async’全部内容,希望文章能够帮你解决Linux中的Swift:使用未解析的标识符’dispatch_async’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1029730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存