如何使用自动工具正确指定公共和私有标头? (C 或 C++ 库)

问题描述 投票:0回答:1

我有一个 C 语言库,可以使用自动工具和 CMake 构建。在 CMake 中,可以定义公共和私有标头 (.h),以便随后安装公共标头(在客户端代码中使用),而私有标头仅用于构建库本身。这可以在自动工具中完成吗?

到目前为止我看到的是

nameinc_HEADERS
必须包含所有标头(公共和私有),否则,如果跳过任何标头,
make distcheck
将失败。例如,可以以另一种方式指定私有 C 标头(以便
make distcheck
满意,但私有标头未安装)?

c shared-libraries private autotools c-header
1个回答
0
投票
在 CMake 中,可以定义公共和私有标头 (.h),以便随后安装公共标头(在客户端代码中使用),而私有标头仅用于构建库本身。这可以在自动工具中完成吗?

是的。

在使用 Automake 的 Autotools 构建系统中执行此操作有两种主要方法(显然,例如您的系统):

  1. 标题可以包含在一个或多个

    *_SOURCES

    列表中。 Automake 通过文件扩展名识别它们并忽略它们,除非将它们包含在分发包中。

  2. 应包含在分发包中但不作为

    make install

     的一部分安装的标头可以在 
    noinst_HEADERS
     变量中指定。

您可以在

Automake 手册中阅读更多相关内容,特别是但不限于有关标题的部分

© www.soinside.com 2019 - 2024. All rights reserved.