[英]Does “make install”, by convention, updates the targets it installs?
[英]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.