在不同的文件夹中安装 qt 应用程序

installing qt application in a different folder

我想将 qt 应用程序安装到 INSTALL_ROOT。 目前目的地硬编码在 target.path 下的 pro 文件中,但我想在 运行:

时获取目的地
make install INSTALL_ROOT=/root/parts/myapp/install

如何从 qt 的 .pro 脚本访问 make install 的命令行参数?

设置 INSTALL_ROOT 变量似乎对我有用。如果我将 target.path 设置为 /usr/local/bin,我会将其放入 qmake 生成的 Makefile 中:

$(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/usr/local/bin/$(QMAKE_TARGET)

INSTALL_ROOT 似乎在 target.path 之前。所以我用这样的示例应用程序进行了测试:

main.cpp:

#include <stdio.h>

int main(int, char**)
{
    return printf("HELLO!\n") > 0;
}

test.pro

QT += core
SOURCES += main.cpp
target.path = /
INSTALLS += target

然后:

$ qmake

$ make
g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o main.o main.cpp
g++ -Wl,-O1 -o test main.o   /usr/lib/libQt5Gui.so /usr/lib/libQt5Core.so -lGL -lpthread

$ INSTALL_ROOT="$PWD/out" make install
/usr/bin/qmake -install qinstall -exe test /home/luca/tmp/test/out/test
strip /home/luca/tmp/test/out/test

$ ./out/test 
HELLO!