有时候我们编译程序完成后需要执行某些操作,比如复制执行文件或库文件到指定目录,如果这些都靠手动复制,未免会太繁琐且容易出错。本文介绍使用Qmake工具编译完成后自动执行自定义脚本的方法。
编译完成后执行脚本/命令
- 使用QMAKE_POST_LINK变量可以指定一个或多个脚本/命令在编译完成(链接)后执行的操作。
- 比如:
1
QMAKE_POST_LINK += cmd_line1 cmd_line2
编译完成前执行脚本/命令
- 使用QMAKE_PRE_LINK变量可以指定一个或多个脚本/命令在编译完成前(链接前)执行的操作。
- 比如:
1
QMAKE_PRE_LINK += cmd_line1 cmd_line2
完整示例
命令
1
2
3
4
5BEFORE_LINK_CMD_LINE = echo Hello world!
QMAKE_PRE_LINK += $$quote($$BEFORE_LINK_CMD_LINE)
AFTER_LINK_CMD_LINE = echo Build Success!
QMAKE_POST_LINK += $$quote($$AFTER_LINK_CMD_LINE)Hello world!
在程序链接前输出。Build Success!
在程序链接(编译完成)后输出。1
2
3
4
5
6g++ -c -pipe -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../untitled -I. -I../../Tools/Qt5.6.3/5.6.3/gcc_64/include -I../../Tools/Qt5.6.3/5.6.3/gcc_64/include/QtCore -I. -I../../Tools/Qt5.6.3/5.6.3/gcc_64/mkspecs/linux-g++ -o main.o ../untitled/main.cpp
echo Hello world!
Hello world!
g++ -Wl,-rpath,/home/strong/Tools/Qt5.6.3/5.6.3/gcc_64/lib -o untitled main.o -L/home/Tools/Qt5.6.3/5.6.3/gcc_64/lib -lQt5Core -lpthread
echo Build Success!
Build Success!