如何让新的头文件普遍可用?

如何让新的头文件普遍可用?

我刚刚下载了一些新的头文件,并有一个文件夹,我希望将其公开。首先,我想让任何想要使用它们的文件都可以使用它们。因此,我希望能够将新的头文件(称为 newheader.h)包含在我想要的位置,例如 math.h。我应该把它放在哪里?

其次,我希望让所有用户都可以使用这些文件。我有 root 权限。我需要将其放入一个特殊目录中吗?非常感谢!

答案1

将它们存储在/usr/local/include。从http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html,此目录中的项目“...在系统软件更新时不会被覆盖”,这很重要,因为您不希望您下载的头文件被系统更新破坏,如果将它们放入,可能会发生这种情况/usr/include

答案2

在我的系统上,该/usr/local/include/目录存在,并且为空。Filsystem 层次结构标准规定 (飞利浦 3.0) 使用的目录为/usr/local/include。文件应为全世界可读的 ( 0444) 且目录应为可搜索的 ( 0555)。

答案3

问题是,你想实现什么目标?

通常会有三种情况:

  • 发展
  • 本地安装(在您的$HOME
  • 全局安装

对于前两个,您可能应该使用开关-I来为标题提供路径。第一个可能是-I../mylib/include,第二个可能是-I/home/user/local_libs/somelib/include

第三种是全局安装,应该将它们放在 中/usr/local/include,但由 automake 或 cmake 等工具进行管理。打包时,维护者应调整安装路径和/或包含路径以将标头安装到/usr/include

使用 automake 时,您可能会注意到--prefix 范围默认/usr/local为安全安装,不会干扰系统软件包,而 Debian 维护人员则 ./configure --prefix=/usr在其软件包脚本中运行。包含路径是根据此前缀构建的,因此它遵循软件包安装。

相关内容