【问题标题】:Move all header files to /usr/local/include/<target>/将所有头文件移动到 /usr/local/include/<target>/
【发布时间】:2015-08-21 19:43:37
【问题描述】:

我有一个小问题。我创建了一个可以使用以下命令安装的程序:

./configure && make && sudo make install

这很好用,但所有 .hpp 文件都在 /usr/local/include 中。将这个 .hpp 文件移动到/usr/local/include/&lt;target&gt; 是否可行? 因此,如果我有一个名为 my_program 的程序,并且假设名为 Timer.hpp 的头文件,是否可以将此 Timer.hpp 移动到 /usr/local/include/my_program 中?

我想通过 automake 和 autoconf 做到这一点。如果您查看/usr/include,您会注意到还有一些其他程序的目录。我想要那个,但当然是在/usr/local/include

我也知道./configure --prefix=/path/my_program,然后,/path/my_program 中的所有内容,但我不希望这样。我想要一个在/usr/local/include 中带有我的程序名称的目录,并且在该目录中我想要我的程序的所有 hpp 文件。

如何做到这一点?

【问题讨论】:

    标签: autotools autoconf automake


    【解决方案1】:

    如果你正在使用 Automake,那么现在你可能有这样一行:

    include_HEADERS = ...
    

    解决此问题的最简单方法是使用预定义的pkgincludedir

    pkginclude_HEADERS = ...
    

    这将使用你的包名作为子目录的名称。

    或者,您可以引入自己的目录变量,例如:

    myincludedir = $(includedir)/whatever
    myinclude_HEADERS = ...
    

    【讨论】:

      【解决方案2】:

      目前尚不清楚您是在寻求 Tom Tromey 提供的包级别的解决方案,还是希望在配置期间应用解决方案。如果是后者:

      configure --includedir=/usr/local/include/my_program
      

      将设置构建以将包含文件放在指定路径中。您可以通过传递给配置的选项来控制大多数文件的最终目的地(实际上,如果不是 s/most/all/,可能有人会争辩说该包已损坏)。

      【讨论】:

      • 感谢您的回答。正如 Tom Tromey 提供的那样,我正在寻找包级别的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 2020-09-23
      • 1970-01-01
      • 2014-12-11
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多