有人能說一下Qt工程中的.pro檔案中的DISTFILES宏具體的用處嗎?(通過在Qt Creator中>右鍵工程>添加已有檔案>添加動態庫會自動在.pro檔案中添加這個宏。)原以為這個宏是通過添加動態庫到工程出現的,那么和LIBS宏應該是一樣的,都是用來鏈接動態庫的。但實際測驗卻發現并不是。無論是在Windows下還是Ubuntu下,DISTFILES似乎都可有可無,而LIBS卻是必須要有的。網上查了很多資料也很少有提到這個宏的。雖然不影響使用還是希望能夠告知一下。
uj5u.com熱心網友回復:
https://doc.qt.io/qt-5/qmake-variable-reference.html#distfilesSpecifies a list of files to be included in the dist target. This feature is supported by UnixMake specs only.
將羅列的檔案復制到release檔案夾下,這個選項只對 Unix 類的 makefile 有效。也就是說在Windows下,只有MinGW編譯器才有作用
uj5u.com熱心網友回復:
不懂求問:看這個解釋是嵌入到目標程式中?
uj5u.com熱心網友回復:
照這個意思話,是不是通過這個宏加入到工程的檔案就不需要絕對路徑可以直接通過檔案名打開(例如我用open打開一個檔案的時候,原本需要QFile::setFileName("../../test.bmp");,加了這個宏之后,可以QFile::setFileName("test.bmp");)了,我也在windows下使用Release模式測驗了一下,但沒有效果,還是需要使用絕對路徑。同時在工程編譯路徑下的release目錄中也并沒有拷貝添加目標檔案。我測驗的環境是windows下的Qt5.11.3,編譯器版本是32bit的MinGW_53。可能就正如官方檔案中所說的Specifies a list of files to be included in the dist target. This feature is supported by UnixMake specs only.這個宏的特性只有在Unix下才能正常使用。目前我只發現這個宏的唯一作用是在于可以把一個工程涉及的所有檔案都添加到工程目錄的Other files中,方便后面看工程的人,清晰的了解整個工程架構、方便修改涉及的檔案、方便配置工程的運行環境。僅僅只是方便查看工程,并沒有實際作用。但這也僅是我初步的理解,不知是否有誤,望斧正。uj5u.com熱心網友回復:
dist target 指的是 一個檔案夾---------------------------------------------------------
這里你要分清楚 作業檔案夾 并不一定是 EXE 所在檔案夾,我認為 你的問題就是由于這個造成的。
另外還有一個OTHER_FILES 變數 才是用來 簡單的 加入到 工程視圖中的
uj5u.com熱心網友回復:
DISTFILESSpecifies a list of files to be included in the dist target. This feature is supported by UnixMake specs only.
For example:
DISTFILES += ../program.txt
一般用于指示你的需要編譯時輸出到dist目錄的其他檔案的。如下邊例子:
DISTFILES = $$PWD/qtcreator.sh \
qml/query.qml \
doc/readme.md
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/94204.html
標籤:Qt
