C++;共享库的头文件,要安装哪些头文件?(最佳做法) < >创建共享C++库时,安装头文件的最佳实践是什么?更具体地说,我有以下两个问题:

C++;共享库的头文件,要安装哪些头文件?(最佳做法) < >创建共享C++库时,安装头文件的最佳实践是什么?更具体地说,我有以下两个问题:,c++,deployment,installation,shared-libraries,header-files,C++,Deployment,Installation,Shared Libraries,Header Files,我正在处理一个共享库项目,其中的头文件具有复杂的相互依赖性,所以我是简单地将它们全部安装,还是有办法限制所需头文件的数量 我计划在/usr/local/include子目录中安装头文件,以避免污染顶级目录,这样做对吗 其他信息:我真的只想提供一个接口的图书馆。该项目是一个自动工具项目,我正在使用Makefile.am文件中的pkginclude_HEADERS命令将头安装到相应的子目录中。实际上,我正在将这个项目从一个使用静态库的程序转换为一个共享库和链接到库的小程序。人们不太可能只使用图书馆的

我正在处理一个共享库项目,其中的头文件具有复杂的相互依赖性,所以我是简单地将它们全部安装,还是有办法限制所需头文件的数量

  • 我计划在/usr/local/include子目录中安装头文件,以避免污染顶级目录,这样做对吗

  • 其他信息:我真的只想提供一个接口的图书馆。该项目是一个自动工具项目,我正在使用Makefile.am文件中的
    pkginclude_HEADERS
    命令将头安装到相应的子目录中。实际上,我正在将这个项目从一个使用静态库的程序转换为一个共享库和链接到库的小程序。人们不太可能只使用图书馆的一小部分,而不是整个图书馆

    编辑:


    作为对基于意见的投票的结束,我也会考虑一个有效的答案:这纯粹是项目特定的,或是符合口味的,没有公认的最佳实践,但我怀疑这是事实,否则我不会问。

    < P>我想分享我的想法,而我不确定我是否有正确的答案: A:

  • 如果报头具有复杂的相互依赖关系,那么只需将它们全部安装就更安全了。或者,您可能希望阅读源代码并清除相互依赖关系
  • 将所有标题放在一个文件夹中是正确的做法。:)
    一种常见的方法是将公共头文件放在
    include
    目录中,将其余的源文件(hpp和cpp)放在
    src
    目录中。例如,假设您正在处理一个名为
    foo
    的项目。可能的文件层次结构如下所示:

    foo
        include
            foo
                x.hpp
                y.hpp
        src
            x.cpp
            y.cpp
            z.cpp
            z.hpp
    

    在这种情况下,您只需将
    include
    目录添加到include路径,然后就可以像这样包含公共头文件:
    #include

    对不起,我不确定,但您指的是在系统上安装文件的时间吗?我的问题是关于库头文件的安装(例如在
    /usr/local/include
    ),而不是源代码中的组织(autotools可以在运行
    make install
    时将内容放在我告诉它的任何地方)。对不起,如果我误解了。