如何使autoconf有条件地使用系统扩展?

Dolda2000

我试图编写一个可以stdio在Linux / glibc和FreeBSD上都使用自定义的程序,为此,我试图编写一个可以正确检测到它们并打开必要的编译器标志以支持它们的autoconf脚本。 。

在glibc上,我需要定义_GNU_SOURCE以获取对fopencookie和的访问权限cookie_io_functions_tAutoconf巧妙地支持通过启用此功能AC_USE_SYSTEM_EXTENSIONS,但我似乎还不太清楚如何仅在必要时执行此操作。目前,我正在尝试这样做:

HAS_FOPENCOOKIE=yes
AC_CHECK_FUNC(fopencookie, [AC_USE_SYSTEM_EXTENSIONS], [HAS_FOPENCOOKIE=no])
AC_CHECK_MEMBER([cookie_io_functions_t.read], [], [HAS_FOPENCOOKIE=no])

这样本身就有效,但是当我尝试多次生成configure脚本时,autoconf大声抱怨AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS显然,它认为在打开系统扩展之前实际进行任何测试都是不明智的做法。

我该怎么办?只是忽略警告?AC_DEFINE而是手动进行必要的操作吗?(后者看起来很丑陋,因为我还需要定义一个AH_TEMPLATE以及所有其他东西。)只需打开我可能会或可能不会使用的所有扩展名,无条件地在文件顶部?完全不同吗?

Dolda2000

我与Autoconf邮件列表中的好人进行了交谈。他们的意见似乎是,由于我不试图与POSIX或ANSI C之类的东西严格兼容,因此AC_USE_SYSTEM_EXTENSIONS无论如何我都应该使用它并且,这样做不会有任何危害,因为我实际上是在使用系统扩展,而不管该扩展是否实际上是默认编译环境的一部分。

我承认我不确定我是否完全理解默认编译环境与“扩展”编译环境之间的区别,但是由于那是他们对自己的工具的看法,因此,我将予以购买并将其作为权威性答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使autoconf有条件地使用系统扩展?

来自分类Dev

在Shake构建系统中有条件地使用.exe扩展名

来自分类Dev

在Shake生成系统中有条件地使用.exe扩展名

来自分类Dev

如何有条件地加载CSS并使用SASS / SCSS对其进行扩展

来自分类Dev

如何有条件地使用Test :: Simple?

来自分类Dev

如何有条件地正确使用jQuery replaceWith?

来自分类Dev

如何有条件地使用芹菜做任务?

来自分类Dev

如何有条件地使用SQL通配符?

来自分类Dev

如何使用Ansible有条件地复制文件?

来自分类Dev

如何使用vim有条件地替换数字

来自分类Dev

如何使用python有条件地修改列表

来自分类Dev

如何使用EJS有条件地显示变量

来自分类Dev

如何有条件地使用rxjs进行缓冲?

来自分类Dev

如何使用FluentValidation有条件地验证属性?

来自分类Dev

如何使用FFMPG有条件地模糊视频

来自分类Dev

如何使用 Capistrano 有条件地清理版本?

来自分类Dev

如何有条件地渲染

来自分类Dev

从文件系统有条件地加载分区

来自分类Dev

有条件地在Django中扩展模板

来自分类Dev

有条件地调用Linq扩展方法

来自分类Dev

如何有条件地为材质ui TreeView组件设置扩展道具

来自分类Dev

Firefox扩展:如何有条件地拦截请求的URL并将其阻止?

来自分类Dev

如何在有条件的js中有条件地应用标题

来自分类Dev

如何在有条件的组件上有条件地添加道具?

来自分类Dev

如何使hbs中的单选按钮有条件地使用addEventListener单击条件

来自分类Dev

Angular:如何通过在条件中使用日期管道有条件地应用样式?

来自分类Dev

如何使用 Wix 基于 CheckBox 有条件地卸载先决条件?

来自分类Dev

如何有条件地读取所有属性?

来自分类Dev

如何使用jq有条件地更改所有记录上的多个值

Related 相关文章

  1. 1

    如何使autoconf有条件地使用系统扩展?

  2. 2

    在Shake构建系统中有条件地使用.exe扩展名

  3. 3

    在Shake生成系统中有条件地使用.exe扩展名

  4. 4

    如何有条件地加载CSS并使用SASS / SCSS对其进行扩展

  5. 5

    如何有条件地使用Test :: Simple?

  6. 6

    如何有条件地正确使用jQuery replaceWith?

  7. 7

    如何有条件地使用芹菜做任务?

  8. 8

    如何有条件地使用SQL通配符?

  9. 9

    如何使用Ansible有条件地复制文件?

  10. 10

    如何使用vim有条件地替换数字

  11. 11

    如何使用python有条件地修改列表

  12. 12

    如何使用EJS有条件地显示变量

  13. 13

    如何有条件地使用rxjs进行缓冲?

  14. 14

    如何使用FluentValidation有条件地验证属性?

  15. 15

    如何使用FFMPG有条件地模糊视频

  16. 16

    如何使用 Capistrano 有条件地清理版本?

  17. 17

    如何有条件地渲染

  18. 18

    从文件系统有条件地加载分区

  19. 19

    有条件地在Django中扩展模板

  20. 20

    有条件地调用Linq扩展方法

  21. 21

    如何有条件地为材质ui TreeView组件设置扩展道具

  22. 22

    Firefox扩展:如何有条件地拦截请求的URL并将其阻止?

  23. 23

    如何在有条件的js中有条件地应用标题

  24. 24

    如何在有条件的组件上有条件地添加道具?

  25. 25

    如何使hbs中的单选按钮有条件地使用addEventListener单击条件

  26. 26

    Angular:如何通过在条件中使用日期管道有条件地应用样式?

  27. 27

    如何使用 Wix 基于 CheckBox 有条件地卸载先决条件?

  28. 28

    如何有条件地读取所有属性?

  29. 29

    如何使用jq有条件地更改所有记录上的多个值

热门标签

归档