一.背景
在使用qt中經常會用到影子模式,即把編譯生成的文件放到源代碼目錄以外的地方,比如build目錄,以起到代碼整潔的目的.
使用這種模式經常會遇到一些問題:
比如qt修改ui文件,運行后卻沒有更新.原因是程序中使用的ui_xx.h文件不是最新的文件.
二.解決辦法:
方法1: 取消影子構建,此后構建目錄與源碼處於同一目錄,每次編譯更新程序使用的UI文件
方法2:項目設置文件.pro內增加 UI_DIR=[ui_xx.h相對編譯目錄的相對路徑或者自己的絕對路徑],同時刪除掉源代碼目錄中ui_*.h,clear all, -> qmake -> rebuilt all (注意qmake用來生成makefile,而build用來編譯鏈接代碼.)
(如果不寫UI_DIR, ui_xx.h應該默認就是生成在編譯目錄下,至於為何當時沒有正確更新,可能的原因是makefile是過期的吧,這個待再次遇到后驗證)
參考文章:
1.https://blog.csdn.net/qq_40194498/article/details/80049258