1、我是在 項目中 用了ini配置文件,然后 想在編譯結束后 自動將 代碼目錄的 ini文件 復制到 編譯生成目錄中去,pro文件中 如下寫:
# ZC: 編譯完成后,將"./cfg.ini"文件 也復制過去 # ZC: Windows下,copy命令中,目錄使用"/"的話 不行 (據說Win10開始可以了) #QMAKE_POST_LINK += copy $$PWD/cfg.ini $$OUT_PWD/cfg.ini # ZC: 暫時使用下面這種方式吧: QMAKE_POST_LINK += copy %cd%\..\txtOper_qt5142_vs17\cfg.ini debug\cfg.ini
ZC:CMD中 %cd% 是得到當前所在目錄,可以使用 echo %cd% 看下效果
2、參考:
2.1、Qt編譯后添加依賴文件到輸出目錄_Qt_my393661的博客-CSDN博客.html(https://blog.csdn.net/my393661/article/details/80582649)
QMAKE_POST_LINK = cp -rf $$PWD/lab_const_1.xml $$OUT_PWD/lab_const_1.xml && \
cp -rf $$PWD/experiment1.xml $$OUT_PWD/experiment1.xml
ZC:linux中的寫法
2.2、qt如何增加 在編譯 生成后事件,想在編譯程序后copy文件到其他文件夾-CSDN論壇.html(https://bbs.csdn.net/topics/390956406)
QMAKE_POST_LINK += ../install.bat
ZC:直接執行bat
2.3、關於 QMAKE_POST_LINK和QMAKE_PRE_LINK使用的說明_操作系統_浮光掠影-CSDN博客.html(https://blog.csdn.net/wkr2005/article/details/93711321)
網頁內容復制:
qt的pro配置文件中也可添加各種編譯前后的操作及配置,主要通過 QMAKE_POST_LINK和QMAKE_PRE_LINK;
QMAKE_POST_LINK表示編譯后執行內容
QMAKE_PRE_LINK表示編譯前執行內容
他們支持的函數以及寫法,可以在QtCreator的幫助中搜索qmake Function 查看詳情說明(QT的幫助文檔是我見過最詳細的使用文檔); ------ ZC:真的這么詳細的么?
比如copy文件如下:
win32:CONFIG(release, debug|release){
SrcIncludeFile = $$PWD/*.h
SrcIncludeFile = $$replace(SrcIncludeFile, /, \\);
OutputIncludeDir = $$PWD/../../../BSCommon/include/
OutputIncludeDir = $$replace(OutputIncludeDir, /, \\);
OutputFile = $$PWD/$${DESTDIR}/$${TARGET}.dll
OutputFile = $$replace(OutputFile, /, \\);
OutputDir = $$PWD/../../../BSCommon/bin/release/
OutputDir = $$replace(OutputDir, /, \\);
QMAKE_POST_LINK += copy /Y $$SrcIncludeFile $$OutputIncludeDir && copy /Y $$OutputFile $$OutputDir
}else:win32:CONFIG(debug, debug|release){
SrcIncludeFile = $$PWD/*.h
SrcIncludeFile = $$replace(SrcIncludeFile, /, \\);
OutputIncludeDir = $$PWD/../../../BSCommon/include/
OutputIncludeDir = $$replace(OutputIncludeDir, /, \\);
OutputFile = $$PWD/$${DESTDIR}/$${TARGET}.dll
OutputFile = $$replace(OutputFile, /, \\);
OutputDir = $$PWD/../../../BSCommon/bin/debug/
OutputDir = $$replace(OutputDir, /, \\);
QMAKE_POST_LINK += copy /Y $$SrcIncludeFile $$OutputIncludeDir && copy /Y $$OutputFile $$OutputDir
}
注意, 注意,注意:
在windows系統下面,由於命令行中大部分命令不支持“/”,所以把“/”替換成“\”。
多條命令語句之間可以用&&隔開,自動連續執行;
定義的宏變量,在非首位置使用時,需要帶{}, 如
PWD/
PWD/
{DESTDIR}/$${TARGET}.dll中的DESTDIR和TARGET
3、
4、
5、