为什么 autoconf 会错误地找到一个以后不可用的函数?

2023-12-15

在 Linux 系统上,我配置了一个软件包(llvm),autoconf 找到了arc4random功能。这里是配置期间输出的提取:

checking for strerror... yes
checking for strerror_r... yes
checking for setenv... yes
checking for arc4random... yes
checking for strtoll... yes
checking for strtoq... yes
checking for sysconf... yes

配置一切顺利。后来,在构建包时,我收到有关未声明说明符的错误arc4random:

[removed]/lib/Support/Unix/Process.inc:368:10: error: use of undeclared identifier
      'arc4random'
  return arc4random();
         ^

这里提到的位置:

367 #if defined(HAVE_ARC4RANDOM)
368   return arc4random();
369 #else
370   static int x = (::srand(GetRandomNumberSeed()), 0);
371   (void)x;
372   return ::rand();
373 #endif

它受到妥善保护,这里configure.ac piece:

AC_CHECK_FUNCS([strerror strerror_r setenv arc4random ])

看起来一切都很好。我想知道为什么配置过程检测到该功能可用。

自动配置(GNU Autoconf)2.63

这里摘录自config.log:

configure --prefix=[removed] --host=powerpc64-bgq-linux --disable-terminfo --disable-zlib --enable-targets=powerpc CXX=bgclang++ CXXFLAGS=-O3 -fPIC CC=bgclang CFLAGS=-O3 -fPIC LDFLAGS=-shared

根据arc4random(3),要使用此功能,您应该包括<bsd/stdlib.h>在你的代码中并将其链接到-lbsd.

这是什么AC_CHECK_FUNCS([... arc4random ])做的是确保arc4random存在于您的系统中,然后定义名为的宏HAVE_ARC4RANDOM,但它不能保证您的代码正确使用它。

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

为什么 autoconf 会错误地找到一个以后不可用的函数? 的相关文章

  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • ./configure 使用指定版本的 g++

    如何告诉 配置 文件使用指定版本的 g 进行编译 Thanks 在 bash shell 中 您可以执行以下操作 configure CC gcc 2 95 其他 shell 也会有类似的技术 但我无法帮助您了解具体细节 如果您的项目是 C
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 如何在configure.in中测试C++库的可用性?

    我正在 GNU Linux 上开发一个 C 项目 并且正在寻找一种方法来使用 Autotools 测试 IBM Informix 库的存在性和可用性 即编辑configure in 我没有使用 Autotools 的经验 所以基本上我是从该
  • 如何在C(Linux utf8终端)中打印“盒子抽屉”Unicode字符?

    我正在尝试显示 方框图范围 2500 257F 中的 Unicode 字符 它应该是标准 utf8 Unicode 标准 版本 6 2 我根本做不到 我首先尝试使用旧的 ASCII 字符 但 Linux 终端以 utf8 显示 并且没有显示
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 使用 systemctl 获取 systemd 进程的正常运行时间或停机时间?

    喜欢使用systemctl is active
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • 为什么 Javascript 会自动混合我的颜色?

    我刚刚开始使用 Javascript 和 HTML5 所以我很可能犯了一些非常愚蠢的错误 事实上 我希望这就是全部 并且这是一个简单的修复 这是我得到的输出 Try it yourself 我想要发生的只是在灰色矩形上绘制一个蓝色矩形 其中
  • 如何在 Apache 2.2 上设置虚拟主机

    任何人都可以指导我有关如何使用 Apache 2 2 设置虚拟主机的好教程吗 这是我的情况 我的笔记本电脑上运行着 Apache 我想要两个网站 一个在端口 80 上 一个在端口 8089 上 我想通过输入计算机的 IP 地址从网络上的另一
  • 如何使用用户脚本欺骗我的 userAgent?

    我正在尝试访问一个网站 但它不允许我这样做 因为它不支持我的浏览器 我相信它正在通过 userAgent 检测来检测我的浏览器 因此 我想创建一个 userScript 来修改我的 userAgent 以便网站无法检测到我的浏览器 我试过
  • NSString 在整个文本中搜索另一个字符串

    我想在另一个 NSString 中搜索一个 NSString 这样即使第二个不以第一个开始 也能找到结果 例如 例如 我有一个搜索字符串 st 我查看以下记录 看看下面是否有任何包含此搜索字符串的记录 它们都应该返回一个好的结果 因为它们都
  • mysql - “列不能为空”

    正如您在标题中看到的 即使我从相关字段中删除了 非空 功能 它仍然不允许我为该字段插入空值 尽管该字段可以为空 任何帮助 将不胜感激 EDITED Create CREATE TABLE review RATING int 11 DEFAU
  • 如何指定 scikit-learn 的朴素贝叶斯的先验概率

    我正在将 scikit learn 机器学习库 Python 用于机器学习项目 我使用的算法之一是高斯朴素贝叶斯实现 的属性之一高斯NB 函数如下 class prior array shape n classes 我想事先手动更改类 因为
  • 如何使用netflix zuul转发到不同路径?

    我正在使用嵌入在 Spring Boot 1 5 x 应用程序中的 netflix zuul zuul的背后是一些微服务 这些微服务在 public 下公开公共端点 现在我想通过 zuul api 网关公开这些公共端点 但从最终的 api
  • C# 以编程方式更改表并添加列 ASP.Net 和 SQL Server

    我一直在尝试在 ASP NET 中以编程方式添加列来修改 SQL Server 中的表 请看下面的代码 string suppliernotxt supplieridlist 1 ToString SqlCommand cmd2 new S
  • 如何使窗体或窗口控件 RecreateWnd 正确感知?

    如您所知 窗口控件 包括窗体 的窗口句柄被认为是易失性的 也就是说 设置某些属性可能会导致控件销毁其窗口句柄 然后重新创建 有很多该技术的示例 搜索StdCtrls for RecreateWnd 因此 当我需要在创建后向操作系统注册 HW
  • iPhone SDK:将流式音频文件保存到 Documents 文件夹

    我想将音频文件保存到应用程序的文档文件夹中 而应用程序中的一个类正在流式传输该音频文件 我怎样才能做到这一点 是否可以将流式音频直接保存到 mp3 中 如果正在传输的音频文件是 mp3 或者我必须使用 caf Thanks 编辑 如果我在另
  • 在Android中的ImageView中渲染两个图像?

    我正在尝试编写一个应用程序 它允许我将多个图像渲染到 Android 中的 ImageView 上 我可以找到用单个位图填充它的方法 但是 似乎没有办法让两个图像在 ImageView 中渲染 每个图像占用一半的渲染空间 任何帮助将非常感激
  • 发送压缩的表单数据

    我听说浏览器如何从服务器接收 gzip 压缩的页面 他们还可以对发送到服务器的数据进行 gzip 压缩吗 如果可能的话 我将如何在服务器上解压缩这些数据 我正在使用 AppEngine 的 webapp 模块 但一般解释 指向教程的指针就足
  • 如何防止用户输入零作为输入?

    我正在尝试将输入验证添加到一组三个EditTexts 用户在其中输入数值 我面临的问题是为了计算工作 用户不能输入零 作为输入字段之一 否则应用程序将崩溃 我尝试执行以下操作以防止输入零并显示警告消息 我收到一条错误消息 指出 无法启动活动
  • 从 Shadertoy 导出到 Three.js

    我正在迈出编码的第一步 我在互联网上制作了一些课程 然后进行了一些 Three js 实验 现在我想继续学习着色器实验 我找到了 Shadertoy com 它真的太棒了 有很多不同的实验 效果令人难以置信 我正在尝试在 Three js
  • 无法使用partitionByInstrument将文件分成多个部分

    使用music21无法将文件分成使用partitionByInstrument from music21 import song converter parse Nottingham train ashover simple chords
  • 验证长度 Powershell

    这是我的第一个剧本 所以不要打我 我正在编写一个脚本 该脚本根据用户输入创建网络目录和 AD 组 以下是我到目前为止所得到的 它有效 但我想进行一些改进 我想验证用户输入的长度 我找到了一篇文章 使用读取主机的 PowerShell Val
  • 无需凭据即可获取不同用户的特殊文件夹

    我正在编写一个卸载程序 作为该过程的一部分 我想为所有本地用户清理缓存 临时文件等 该应用程序将运行提升以使其正常工作 我正在查找的文件位于特殊文件夹中 例如AppData Local 所以我需要路径 对于当前登录的用户来说 这是微不足道的
  • React 中延迟数组映射迭代

    我有这个数组 我想迭代它 我需要在下一个之前延迟几秒钟 this props things map thing index gt return div thing content div Delay 1 second here 该数组的初始
  • 项目匹配查询不存在错误?

    这是视图 def showProject request project slug project Project objects get slug project slug tickets Ticket objects filter pr
  • 为什么 autoconf 会错误地找到一个以后不可用的函数?

    在 Linux 系统上 我配置了一个软件包 llvm autoconf 找到了arc4random功能 这里是配置期间输出的提取 checking for strerror yes checking for strerror r yes c