对于使用块的 clang 程序,您需要链接哪些库

2024-02-19

我发现(如下)在编译使用块的代码时需要使用 -fblocks 。

我需要链接哪个库才能让链接器解析 _NSConcreteStackBlock? (在 Ubuntu 9.10 AMD64 上。)

chris@chris-desktop:~$ clang ctest.c 

ctest.c:3:25: error: blocks support disabled - compile with -fblocks or pick a
      deployment target that supports them
void call_a_block(void (^blockptr)(int)) {
                        ^
ctest.c:11:19: error: blocks support disabled - compile with -fblocks or pick a
      deployment target that supports them
    call_a_block( ^(int y) { 
                  ^
2 diagnostics generated.
chris@chris-desktop:~$ clang ctest.c -fblocks
/tmp/cc-4sPSeO.o: In function `main':
ctest.c:(.text+0x79): undefined reference to `_NSConcreteStackBlock'
collect2: ld returned 1 exit status
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Clang 尚未提供在没有内置操作系统支持的平台(例如 SnowLeopard)上使用块的简单方法。您可以在此处找到有关 libdispatch 项目的更多信息:http://libdispatch.macosforge.org/ http://libdispatch.macosforge.org/以及这里的 compiler-rt 项目(提供块运行时):http://compiler-rt.llvm.org/ http://compiler-rt.llvm.org/但这还没有为 Clang 最终用户很好地打包。

如果你想深入了解一下,compiler-rt 项目中确实有块运行时,你可以使用它来构建一个提供 NSConcreteStackBlock 的库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于使用块的 clang 程序,您需要链接哪些库 的相关文章

  • 为什么python请求默认不使用系统ssl证书?

    背景 我正在尝试Ubuntu 18 04 1 LTS 使用 next 安装自签名证书 cp rf my crt usr local share ca certificates update ca certificates 一切正常 因为现在
  • Docker:使用 RUN 命令设置 ENV 变量的值?

    我正在编写一个 Dockerfile 来设置我的自定义 WordPress 环境 我从 ubuntu latest 开始 希望通过将 ENV 变量设置为当前 Ubuntu 版本的代号来动态添加一些存储库 我该如何做到这一点 或者有更好的方法
  • make找不到curses.h

    我有一个名为 samtools 版本 1 3 的程序 用于操作从 DNA 测序实验中获得的文件 下载的程序包含在一个文件夹中 为了设置程序 我在终端 在 ubuntu 计算机上 中输入该文件夹 我输入突击队 make 它运行并打印它所做的事
  • LLVM cmake安装找不到DIA SDK

    我正在尝试使用 cmake 构建 LLVM 安装 但它给了我一个关于 LLVM ENABLE DIA SDK 的错误 我之前在没有 PDB 的情况下成功构建了 LLVM 但我正在尝试开始使用 libclang 所以我需要 PDB Cmake
  • Linux 软件包存储库中的 *​​-dev 软件包实际上包含什么?

    我的问题非常基本 我现在的知识也是如此 我是 Linux 的长期用户 但直到最近才对编程产生了浓厚的兴趣 我看到 Ubuntu 存储库中的许多流行应用程序都有 dev 软件包 例如洋泾浜开发者此外pidgin 我的问题是这样的 这些包裹里有
  • 如何将其他语言添加到 TeX

    在 MediaWiki 中 如果您在公式中添加非英文文本 则会被剪切 例如 如果你写 text f b and 俄语 西里尔字母 符号 输出将是fb not f b 首先 如果您的 MediaWiki 版本低于 1 18 则打开文件 inc
  • 由于没有匹配的函数,LLVM 构建错误

    我克隆了 LLVM git 存储库并遵循https llvm org docs GettingStarted html https llvm org docs GettingStarted html 配置后 cmake SOURCEDIR
  • 如何在 Ubuntu 16.04 LTS 中使用 IIS 运行 Docker 容器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu
  • Ubuntu + SVN:无法打开请求的 SVN 文件系统

    我知道这个问题已经被问过很多次了 我相信我明白答案 但我仍然没有运气 我都尝试过one repo and multiple repos配置 两者都有相同的问题 因此 对于我感兴趣的配置
  • 使用终端时出现意外标记“(”附近的语法错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我试图为我的平板电脑获取一个 cpuid 该平板电脑变砖了 我有这段代码 当我通过终端在 ubuntu 上执行它时 它给出以下错误
  • nginx + WordPress:SFTP + 自动更新的适当用户/文件权限?

    I used this http wordimpress com aws ec2 rds s3 cloudfront nginx wordpress tutorial roundup 在 Ubuntu VPS 上安装 nginx 和 Wor
  • 尝试在 Linux 上使用 Clang++ 编译 c++11 正则表达式教程时出错

    我正在努力追随本教程 http solarianprogrammer com 2011 10 12 cpp 11 regex tutorial 关于 C 11 中的正则表达式 当我尝试编译这个小代码示例时 我收到这些错误 clang std
  • 使用预编译头减少 clang 编译时间

    我正在开发一个数据库项目 该项目将查询 以某种高级语言表示 编译为 C 代码 这段代码由数据库编译并执行 那部分工作得很好 现在 我正在尝试减少 C 查询代码的编译时间 我想知道是否可以使用预编译头来提高性能 该查询被转换为一个名为 Que
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • 是否可以扩展现有的 Objective-C 块?

    我有一个使用标头中定义的块的类 如下所示 property readwrite copy RequestSucceededBlock succeededBlock 该物业succeededBlock已经设置了一个块 有没有办法用另一个仍然调
  • 从网络中的另一台计算机访问本地GAE SDK服务器

    我有开发服务器 来自 google appengine sdk 在我的 Ubuntu 计算机上运行 我可以通过导航到 localhost 8080 来访问我的网站 我想从网络中的另一台计算机 装有 Vista 操作系统 访问该站点 ifco

随机推荐