繁体   English   中英

按照约定,“ make install”是否将头文件复制到/ usr / include?

[英]By convention, does 'make install' copy header files to /usr/include?

我确实在应该使用的特定库上make install 我看到.so文件已复制到/usr/lib ,但.h未复制到/usr/include 按照惯例,对吗?

按照惯例,文件应复制到

headers  -> $DESTDIR$PREFIX/include
libs     -> $DESTDIR$PREFIX/lib
binaries -> $DESTDIR$PREFIX/bin

其中DESTDIR变量默认为空。 而且PREFIX通常设置为/usr/usr/local ,具体取决于您的意图。 通常,将由系统的本地程序包管理器管理的软件安装到/usr ,而不应由操作系统的程序包管理器管理的软件通常转至/usr/local 因此,在您的情况下,它应该转到/usr/local ,但您的makefile实际执行的操作尚有疑问。

Makefile和安装路径没有“默认值”。 但是有一个或多或少的通用文件系统层次结构,可以在这里找到:

https://zh.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

从用户的角度来看,我希望任何手动安装都可以在/ usr / local / ...下进行。

/ usr / ...由发行版管理,因此默认情况下将自己的文件放在此处很危险。 也许您的文件将与分发管理中的其他文件冲突。

关于Linux的不同发行版,有很多约定,还有一个“标准”,它为文件系统组织提供了更多规则: https : //en.wikipedia.org/wiki/Linux_Standard_Base http://www.pathname.com / fhs /

因此,您可以对照此标准检查您的要求。

它们可能安装的另一个位置是/opt目录。

/opt/include/*.h
/opt/lib/lib*.so
/opt/bin/*

通常,顶级目录( /bin/lib )用于系统命令和库(例如/bin/bash )。 应用程序软件和库的/usr目录(例如/usr/bin/libreoffice )。 内部软件的/opt目录。 此外,如果某个应用程序需要较旧的库,则可以将其存储在/opt以免干扰其他应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM