Qt.pro.編譯完成后_做某些操作


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、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM