CMAKE_INSTALL_PREFIX和DESTDIR有什么区别?何时何地使用?从cmake doc它不是很清楚,以哪一个应该使用?我是否可以将CMAKE_INSTALL_PREFIX设置为一个路径,并将DESTDIR设置为另一个与CMAKE_INSTALL_PREFIX提供的路径不同的路径(不是我想这样做,但这样做意味着什么)?概念澄清。我什么都没做。
mnowg1ta1#
据我所知,CMAKE_INSTALL_PREFIX指定了软件应该安装在哪里--因此它控制着rpath的共享库。DESTDIR用于 * 临时 * 在其他地方安装软件-但不更改rpath和其他路径-通常用于二进制打包目的。例如,您可以将DESTDIR设置为某个临时目录,以创建一个二进制包,该包将安装到CMAKE_INSTALL_PREFIX中。
CMAKE_INSTALL_PREFIX
rpath
DESTDIR
qgelzfjb2#
CMAKE_INSTALL_PREFIX特定于cmake,并且在cmake本身中具有定义良好的语义。DESTDIR是make(和其他类似工具)的约定,它指定了系统上应该安装的根目录。一个常见的例子与打包软件有关。开箱即用,如果在本地编译,它将安装到/usr/local;但是包管理器将希望“安装”到临时构建目录中,并且在该目录中安装到usr而不是usr/local。参见DESTDIR in the GNU Coding Standard.
cmake
make
/usr/local
usr
usr/local
2条答案
按热度按时间mnowg1ta1#
据我所知,
CMAKE_INSTALL_PREFIX
指定了软件应该安装在哪里--因此它控制着rpath
的共享库。DESTDIR
用于 * 临时 * 在其他地方安装软件-但不更改rpath
和其他路径-通常用于二进制打包目的。例如,您可以将
DESTDIR
设置为某个临时目录,以创建一个二进制包,该包将安装到CMAKE_INSTALL_PREFIX
中。qgelzfjb2#
CMAKE_INSTALL_PREFIX
特定于cmake
,并且在cmake
本身中具有定义良好的语义。DESTDIR
是make
(和其他类似工具)的约定,它指定了系统上应该安装的根目录。一个常见的例子与打包软件有关。开箱即用,如果在本地编译,它将安装到
/usr/local
;但是包管理器将希望“安装”到临时构建目录中,并且在该目录中安装到usr
而不是usr/local
。参见
DESTDIR
in the GNU Coding Standard.