默认情况下qmake
会产生空install
和unistall
目标,除非您明确指示qmake
进行安装。
例如项目文件
TEMPLATE = app
TARGET = test
DEPENDPATH += .
INCLUDEPATH += .
SOURCES += main.cpp
生成以下 Makefile(仅显示安装部分以节省空间)
####### Install
install: FORCE
uninstall: FORCE
FORCE:
那么Qt项目文件中的以下规则将指定安装路径
unix {
target.path = /usr/bin/
INSTALLS += target
}
现在 Makefile 已经改变了
####### Install
install_target: first FORCE
@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/bin/ || $(MKDIR) $(INSTALL_ROOT)/usr/bin/
-$(INSTALL_PROGRAM) "$(QMAKE_TARGET)" "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
uninstall_target: FORCE
-$(DEL_FILE) "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
-$(DEL_DIR) $(INSTALL_ROOT)/usr/bin/
install: install_target FORCE
uninstall: uninstall_target FORCE
FORCE:
这是来自 robojournal.pro 的部分:
target.path = /usr/local/bin
INSTALLS += target shortcut icon shortcut-deb icon-deb
最终用户极不可能编译应用程序。甚至像我一样会编译它的人也不会安装它,因为它可以从构建目录启动。因此,将 /usr/local/bin 替换为 /usr/bin 是安全的。