我正在尝试编译一个使用音乐节库的程序。

基本上,要求是将节日 estools头目录包含在包含路径中,并且同时包含它们的库路径。

在正常安装中,它们只是停留在自己的文件夹中,因此您拥有 通用标签

作为必需的搜索路径,并且 通用标签

作为库路径。

我认为处理此问题的正确方法是使用“ --with-estools”和“ --with-festival”配置选项。

但是,在debian / ubuntu系统上安装时,会有不同的设置。 我希望能够处理此设置,其中的搜索路径为 通用标签

搜索路径就是 通用标签

我想检测第二种情况并自动处理它,同时如果第二种情况不满意,仍然需要用户指定前两个目录。我该怎么办?

有帮助吗?

解决方案

是否有某些东西可以排除像这样的设置选项?

  1. -节日包含,默认值为/ usr / include / festival

  2. -节日库,其默认值(如果未设置)为/usr/lib/libfestival.XXX

    凳子也一样。

其他提示

包维护人员根本不必担心这些细节;这是用户的责任。如果用户已在非标准位置安装了库,则用户需要将LDFLAGS= -L / path / to / lib添加到CONFIG_SITE文件或每次configure调用中,或通过以下方式将该路径放入编译器的搜索路径中一些与系统有关的机制。同样,用户应将-I / path / to / include附加到CPPFLAGS。

换句话说,debian通过在标准位置简单地安装库和头文件来做正确的事情。选择在非标准位置安装库的任何人都在给自己做更多的工作。纠正他们的错误不是您的责任。

添加--with-festival或--with-festival-headers之类的选项没有帮助;用户可以轻松地将其分配给LDFLAGS和CPPFLAGS,并且这些变量已标准化。

某些平台已采用文件系统继承标准- http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

这应该真正体现在autoconf中,而不是坚持要求用户通过设置CFLAGS来处理它,因为/ opt / openssl / lib不再是“非标准”位置。

FHS还指定/ usr / local是“特定于此主机的本地数据的三级层次结构”。因此可以说,/ opt应该首先被检查。

有关FHS的更多信息/ opt-> http://www.pathname.com / fhs / pub / fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top