.h 是从 .h.in 生成的吗?

2024-03-15

我的库在构建后创建的 .h 文件中有结构定义。但我在相应的 .h.in 中找不到这些定义。有人可以告诉我这一切是如何工作的以及它从哪里获取额外信息吗?

具体来说:我正在构建 pth,用户空间线程库。它有 pth_p.h.in,它不包含我正在寻找的结构定义,但是当我构建库时,会出现 pth_p.h 并且它具有我需要的定义。

事实上,我在构建库之前搜索了库中的每个文件,但找不到它在哪里生成结构定义。


Pth 使用 GNUAutoconf https://secure.wikimedia.org/wikipedia/en/wiki/Autoconf, Automake https://secure.wikimedia.org/wikipedia/en/wiki/Automake, and Libtool https://secure.wikimedia.org/wikipedia/en/wiki/Libtool。通过跑步./configure你将运行一个最终运行的 shell 脚本m4 http://www.gnu.org/software/m4/检测是否存在大量不同的系统属性并对许多文件进行更改。

看起来可以归结为./configure生成Makefile from Makefile.in然后通过 make 运行一些东西来触发shtool http://www.gnu.org/software/shtool/子命令scpp:

pth_p.h: $(S)pth_p.h.in
    $(SHTOOL) scpp -o pth_p.h -t $(S)pth_p.h.in -Dcpp -Cintern -M '==#==' $(HSRCS)

模糊链接,但这是一个shtool-scpp 联机帮助页 http://je.je/cgi-bin/man/man2html?1+shtool-scpp,将其描述为:

该命令是附加的 ANSI C 用于共享的源文件预处理器 cpp(1) 代码段,内部 变量和内部函数。这 这样做的意图来自于写作 ANSI C 中的库。这里有一个常见的 共享内部头文件通常是 用于在之间共享信息 库源文件。

该操作是解析特殊的 在文件中构造,生成一些 这些结构之外的东西 将它们插入到 tfile 中的位置标记处 将输出写入 offile。 此外,这些文件永远不会 触摸或修改。相反, 构造稍后被删除 构建过程的 cpp(1) 阶段。这 唯一的前提是每个文件 有一个 ``"#include ""ofile"""'' 在 顶部。

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

.h 是从 .h.in 生成的吗? 的相关文章

  • 错误 C1083 无法打开包含文件:“stdafx.h”:没有这样的文件或目录

    我是 Visual Studio 的新手 我创建了一个简单的控制台应用程序 然后选择了一个 C 的空项目 然后粘贴了以下代码 include stdafx h include
  • 修复了左侧的侧边栏菜单和顶部的固定标题

    所以我想做的是一个固定的侧边栏 顶部有一个固定的菜单 中间的内容可以滚动 body html height 100 margin 0 aside background 90EE90 height 100 left 0 position fi
  • 如何设置 TabControls TabItem 标题 FontSize

    我有一个 TabControl 其样式可以更改 TabItem 标题的 FontSize 当我数据绑定 ItemsSource 时 只有标题受 FontSize 影响 但是 当我在另一个 TabControl 上使用相同的样式并在 XAML
  • 如何像联系人应用程序一样在Android列表视图中绘制节标题?

    我知道如何在屏幕上显示它 但是当我在手机中使用 联系人 应用程序时 我发现当我滚动列表时 它的字母部分标题可以固定在顶部 如何做到这一点 请参阅此处的 AmazingListView 它是带有节标题的 ListView 它的工作方式与默认的
  • System.setProperty("sun.net.http.allowRestrictedHeaders", "true") 在詹金斯中不起作用

    我正在尝试在 http 请求标头中发送原始标头 但是当我获取其值时 我得到的是 null 而不是我在原始标头中设置的 url 另外 我还使用以下命令启用了受限标头作为詹金斯作业中请求标头的一部分发送 System setProperty s
  • 标题消息就像 Stack Overflow 中一样

    这是我第一次访问堆栈溢出 我看到了一条漂亮的标题消息 其中显示了文本和关闭按钮 标题栏是固定的 非常能吸引访问者的注意力 我想知道你们中是否有人知道获得相同类型标题栏的代码 快速的纯 JavaScript 实现 function Messa
  • 无法使用 Spring 的 WebServiceTemplate 将 Http 标头添加到消息中

    我有一个相当简单的情况 我尝试将 HTTP 标头 不是 SOAP 标头 添加到我使用 Spring 发出的请求中WebServiceTemplate 我定义了一个ClientInterceptor我在哪里做 Override public
  • Internet Explorer 8 不会修改打印样式表中的 HTML5 标记

    我之前正在制作打印样式表 并遇到了 IE8 的问题 我正在使用 HTML5 和几个布局标签 包括页眉 导航和页脚 由于某种原因 在我的打印样式表中显示 无 这些标签上的声明在 IE8 中被忽略 我只能假设后续的较低版本 我首先认为 IE9
  • Doxygen 在子目录中找不到标头

    我正在使用 Doxygen 记录 C 库的头文件 在里面Doxyfile 我定义 INPUT include 希望 Doxygen 能够为所有头文件生成文档include Foo 但事实并非如此 只有index html被生成 我可以设置I
  • 如何避免函数的多重定义(Linux、GCC/G++、Code::Blocks)

    我有一个代码块项目 它使用许多不同的文件 通常是由其他程序员编写的 目前我遇到的情况是 我有两个不同的子项目 其中包含以相同方式命名的函数 比方说 F int x 因此 F int x 是在两个不同位置的两个源文件中定义的 并且它们有两个不
  • 音频html标签无法快进或快退控制

    我正在使用音频 html 标签从我的上传服务器加载音频 但我不知道为什么我的音频无法像往常一样循环 快进或快退控制 我的音频 标题 Accenpt Ranges bytes Connection Keep Alive Content Len
  • 如何在 QTableView 标题中单击鼠标右键单击上下文菜单?

    下面的示例代码 很大程度上受到here http www saltycrane com blog 2007 12 pyqt 43 qtableview qabstracttablemodel 有一个右键单击上下文菜单 当用户单击表中的单元格
  • C++头文件问题

    我在处理类时尝试了一些 C 代码 这个问题出现在我身上 并且让我有点烦恼 我创建了一个包含类定义的头文件和一个包含实现的 cpp 文件 如果我在不同的 cpp 文件中使用此类 为什么要包含头文件而不是包含类实现的 cpp 文件 如果我包含类
  • 第三方库应该放在哪里?

    我为一个相当规模的 C 项目 http github com nickgammon mushclient具有许多依赖关系 问题是 该项目包含其所有依赖项的源代码 例如 pcre zlib 等 我想将项目精简为与程序本身相关的内容 是否有一些
  • 将私有部分保留在 C++ 标头之外:纯虚拟基类与 pimpl

    我最近从 Java 和 Ruby 切换回 C 令我惊讶的是 当我更改私有方法的方法签名时 我必须重新编译使用公共接口的文件 因为私有部分也位于 h 文件中 我很快想出了一个解决方案 我想这对于 Java 程序员来说是典型的 接口 纯虚拟基类
  • 如何在头文件中声明一个由c中的多个文件使用的结构?

    如果我有一个带有结构的 source c 文件 struct a int i struct b int j 如何在另一个文件中使用这个结构 即func c 我应该创建一个新的头文件 在那里声明结构并将该头包含在func c 或者我应该在头文
  • C++ 模板和头文件[重复]

    这个问题在这里已经有答案了 因此 我听说 C 模板不应分为头文件 h 和源文件 cpp 例如 这样的模板 template
  • ./configure 使用指定版本的 g++

    如何告诉 配置 文件使用指定版本的 g 进行编译 Thanks 在 bash shell 中 您可以执行以下操作 configure CC gcc 2 95 其他 shell 也会有类似的技术 但我无法帮助您了解具体细节 如果您的项目是 C
  • 列表视图标题和第一项之间的空白

    我创建了一个带有 ListView 的 Android 应用程序 我已将页眉和页脚添加到列表中 但是 当添加分隔符 分隔符时 它还会在标题和第一个 ListView 项之间创建一个空白空间 它对最后一个 ListView 项目和页脚执行相同
  • Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers

    我试图通过发布请求将文件发送到我的服务器 但是当它发送时会导致错误 Access Control Allow Headers 不允许请求标头字段 Content Type 所以我用谷歌搜索了错误并添加了标题 http post rootSc

随机推荐

  • 循环和递归之间的实际区别是什么

    我目前正在使用 PHP 工作 因此这个示例将使用 PHP 但问题适用于多种语言 我正在和我的一个朋友一起做这个项目 和往常一样 我们遇到了一个大问题 现在我们俩都回家了 无法解决问题 那天晚上我们都找到了解决办法 只是我用了循环来解决问题
  • Swift - 在带有可选参数的泛型函数中以 Nil 作为参数

    我正在尝试创建一个可以接受可选参数的通用函数 这是我到目前为止所拥有的 func somethingGeneric
  • 健全性检查:作为主键浮动?

    我正在使用旧的 sql server 2000 数据库 将其中的一些信息与我正在构建的新应用程序混合在一起 我注意到几个表中的一些主键是浮点数而不是任何类型的整数 它们不是外键并且都是唯一的 我想不出有任何理由让任何人想要让他们的唯一主键
  • 使用 Python 和 Selenium 抓取图形上的悬停

    我正在尝试从中抓取数据http fuelinsights gasbuddy com Charts http fuelinsights gasbuddy com Charts使用Python和Selenium 困难的部分是 只有当鼠标悬停在折
  • Spotify 应用程序请求授权

    我正在尝试使用以下代码从 Spotify 获取 访问令牌 var encoded btoa client id client secret function myOnClick console log clikced ajax url ht
  • iTextSharp 许可 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们想在我们的一个项目中使用 iTextSharp DLL 来提取 PDF 文本 但我第二次考虑将其发布
  • iOS9 上的 Admob 和插页式广告

    今天我注册了 adMob 并开始在我的应用程序中处理 adMob 广告 第一个是游戏 带有视图控制器 我想在游戏结束后立即显示插页式广告 所以我想在游戏结束后立即加载插页式广告游戏结束加载的视图 此视图仅在游戏结束后才可访问 并且游戏持续一
  • 对数组中的对象执行块操作并在全部完成时完成

    我有一个对象数组 我想对其执行块操作 我不确定执行此操作的最佳方法 我正在做类似下面代码的事情 但我认为这不是最佳实践 进行此类操作的最佳方法是什么 void performBlockOnAllObjects NSArray objects
  • 类不符合RequestRetrier协议

    我一直在将我的项目迁移到 swift3 并一直在努力让 Alamofire RequestRetrier 协议正常工作 我遵循 Alamofire 4 0 迁移指南 https github com Alamofire Alamofire
  • 使用 @OneToOne 和 @OneToMany 时如何使 Hibernate OUTER JOIN

    假设我有一张名为employee与领域employee id name and supervisor id and employee supervisor与领域supervisor id and name 存在外键关系employee an
  • Docker:如何对 docker Push 进行身份验证?

    嗨 我正在尝试docker push docker simple httpserver docker push myregistry simplehttpserver latest The push refers to a reposito
  • 活动管理日期过滤器日期格式自定义

    是否有简单的方法可以更改 ActiveAdmin 日期过滤器显示格式的默认 ISO 格式 yyyy mm dd 您可以向日期选择器提供额外的选项 而不是覆盖 js 如下所示 f input my date as datepicker dat
  • 禁用 Android WebView WebRTC

    Fresh Cromium WebView 支持 WebRTC 但我想禁用它 Chrome 应用程序可以允许在 Chrome 中执行此操作 因此这似乎并非不可能 我进行了很多研究 但没有找到合适的解决方案 任何帮助 将不胜感激 更新 仍未解
  • 快速显示所有 Firebase 用户的帖子

    我需要使用 firebase 作为后端创建一个 UISearchController 我目前在 firebase 中有两个用户 一名用户发布了一篇帖子 另一名用户发布了四篇帖子 我希望能够搜索我的数据库中所有书籍的标题 共有五本书 但是 到
  • 在node.js中使MySQL的ORDER BY动态化

    我想做ORDER BYNode js 中的 mysql 查询是动态的 但这不起作用 我console logmultiQuery 变量和一切看起来都很完美 但运行时它根本不起作用 这就是我所拥有的 var order multiQuery
  • Oracle SELECT - 双引号还是没有双引号? [复制]

    这个问题在这里已经有答案了 All 在为 Oracle 11i 数据库编写 SELECT 查询时 为什么 Oracle 中的某些表强制对所选字段应用引号 而其他表则不然 举个我最近遇到的例子 在 Aqua Data Studio 的查询分析
  • 如何在真实设备(移动设备)上开发Windows 10 UWP?

    我正在尝试在真实设备上调试我的应用程序 带有 Windows 10 Mobile 10 0 10581 0 的 lumia 830 开发者模式在两种设备 移动设备和 PC 上均处于开启状态 但是当我尝试在设备上模拟应用程序时 出现错误 DE
  • Rails ActionMailer 编码

    Setup Ruby 1 9 2 Rails 3 2 2 我的电子邮件编码遇到一些问题 注意 我对编码之类的东西不太熟悉 使用 ActionMailer 发送电子邮件时 电子邮件中的 html 出现了一些奇怪的情况 所有等号 都更改为 3D
  • 如何更改MySQL表的默认字符集?

    有一个MySQLtable这个定义取自SQLYog Enterprise Table Create Table etape prospection CREATE TABLE etape prospection etape prosp id
  • .h 是从 .h.in 生成的吗?

    我的库在构建后创建的 h 文件中有结构定义 但我在相应的 h in 中找不到这些定义 有人可以告诉我这一切是如何工作的以及它从哪里获取额外信息吗 具体来说 我正在构建 pth 用户空间线程库 它有 pth p h in 它不包含我正在寻找的