INSTALL_ROOT 用于包构建系统,例如 NSIS、debian 或任何其他用于打包构建软件并交付它的方式。
为此,您想要的结果是
INSTALL_ROOT=$PWD/package_root make install
在 $PWD/package_root 下创建一棵树,该树完全模仿您计划交付到的目标系统上的树。请注意,您需要 INSTALL_ROOT 成为完整路径(因此是 $PWD),而不是相对路径。
创建包时,您可以将该树压缩到存档中,然后安装过程只需将同一棵树解压缩到目标文件系统上。
$PWD/package_root/usr/bin/my_binary
将被安装到
/usr/bin/my_binary
在目标上。
这就是 INSTALL_ROOT 用途问题的答案。要回答如何指定“默认安装根目录”需要有关您想要实现的目标的更多信息。
看一下 qmake -query 的输出:
[email protected] /cdn-cgi/l/email-protection:~$ qmake -query
QT_INSTALL_PREFIX:/usr
QT_INSTALL_DATA:/usr/share/qt4
QT_INSTALL_DOCS:/usr/share/qt4/doc
QT_INSTALL_HEADERS:/usr/include/qt4
QT_INSTALL_LIBS:/usr/lib/i386-linux-gnu
QT_INSTALL_BINS:/usr/bin
<snipped>
QT_VERSION:4.7.4
以及 qmake 中 INSTALLS 变量的使用:http://doc.qt.digia.com/qt/qmake-environment-reference.html#installs http://doc.qt.digia.com/qt/qmake-environment-reference.html#installs - and 如何指定输入 QMake INSTALLS 变量? https://stackoverflow.com/questions/9377593/how-do-i-specify-input-the-qmake-installs-variable
默认情况下,如果你这样做
target.path = $$[QT_INSTALL_BINS]
INSTALLS += target
然后你的二进制文件将被安装在 qt 认为正确的地方,QT_INSTALL_BINS。当然,您可以通过将 target.path 设置为其他内容来更改这些默认值。 Qt 提供了这些路径,但是否使用它们取决于您。
你可以做
MY_DEFAULT_INSTALL=/opt/myproj
somedocs.files = docs/index.html
somedocs.path = $$MY_DEFAULT_INSTALL/docs
target.path = $$MY_DEFAULT_INSTALL/bin
INSTALLS += somedocs target
例如,其中 MY_DEFAULT_INSTALL 是 .pro 文件中定义安装默认值的一个位置。