【问题标题】:Autoconf - Where does config.h go?Autoconf - config.h 去哪儿了?
【发布时间】:2010-12-21 01:55:09
【问题描述】:

我正在编写自己的单元测试库(使用 autoconf、automake 和 libtool)以更好地满足我的需求(我不需要超大量的功能,只需要一个测试运行程序和断言)。我已经到了它似乎可以使用的地步。

当然,它使用 config.h 来确定要包含的标头。问题是我不确定 config.h 应该放在哪里,因为它很容易与其他项目的 config.h 发生冲突,而且它依赖于架构。

安装此标头的方法应该是什么? (所有其他标头都需要它)

【问题讨论】:

  • 安装config.h的方法应该和你销毁文件系统的方法一样。您可以将酸液倒在硬盘上,或者将机器从 90 层的建筑物中扔下,或者将其扔到湖中。但更好的选择是不这样做。 Config.h 只能在编译项目时在构建目录中使用。不应该安装它。

标签: autotools autoconf automake libtool


【解决方案1】:

无论如何,您都不应该在库的界面中导出 config.h

This link 显示了一种解决方法,如果您安装的头文件确实需要依赖于平台。不过,使用过时的 autoconf 宏是一种脆弱的方法。

【讨论】:

    【解决方案2】:

    ax_prefix_config_h 宏听起来就像您想要的那样。它提供了一种创建另一个类似 config.h 的文件的方法,该文件包含前缀 config.h 信息。因此,例如,您将在 mylib_config.h 中获得 #define MYLIB_HAVE_SOMETHING 而不是 config.h 中的 #define HAVE_SOMETHING。很方便。

    【讨论】:

      【解决方案3】:

      您可以通过更改 AC_OUTPUT 宏来选择输出不同的配置文件,尽管我不确定您的项目将如何与其他项目集成。如果它是一个子项目,那么它无论如何都会在一个子目录中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-03
        • 2014-03-15
        • 2015-07-17
        • 2012-10-30
        • 2013-05-23
        • 1970-01-01
        • 2012-03-13
        • 1970-01-01
        相关资源
        最近更新 更多