删除隐藏版本信息 版本回退_Qt如何给程序添加版本信息
“
閱讀本文需要3分鐘
自己親手編譯過 Qt Creator 源碼的朋友都有這樣的疑惑,為啥編譯完成后最終生成的動態庫、插件以及 exe 都會帶數字 4 后綴,下面記錄下如何出現以及如何解決
Aggregationd4.dll一般我們在構建程序是一個簡單的工程 pro 是這樣的
TEMPLATE?=?appTARGET?=?$$IDE_APP_TARGETDESTDIR?=?$$IDE_BIN_PATHQT?=?coreHEADER??+=?????...SOURCE??+=?????...這樣在執行 qmake 構建后最終生成的文件不會包含版本信息,我們來看下這個庫的信息
Aggregationd.dll信息
那么如何才能加入版本信息呢?
其實很簡單,版本信息通常有兩種方法可以實現
- 手動編寫 .rc文件
- 自動生成.rc文件
手動編寫 .rc 文件方法比較繁瑣,直接找到某個模板修改即可,下面說說最簡單的自動生成方法
在 pro 文件添加版本定義變量
在你需要添加版本的工程 pro文件中添加下面這行代碼
VERSION?=?4.4.1然后重新構建,此時你會發現在工程臨時文件夾目錄多了一個文件
Aggregation_resource.rc
#?if?defined(UNDER_CE)#??include?#?else#??include?#?endifVS_VERSION_INFO?VERSIONINFO?FILEVERSION?4,4,1,0?PRODUCTVERSION?4,4,1,0?FILEFLAGSMASK?0x3fL#ifdef?_DEBUG?FILEFLAGS?VS_FF_DEBUG#else?FILEFLAGS?0x0L#endif?FILEOS?VOS__WINDOWS32?FILETYPE?VFT_DLL?FILESUBTYPE?0x0L?BEGIN??BLOCK?"StringFileInfo"??BEGIN???BLOCK?"040904b0"???BEGIN????VALUE?"CompanyName",?"0"????VALUE?"FileDescription",?"0"????VALUE?"FileVersion",?"4.4.1.00"????VALUE?"LegalCopyright",?"0"????VALUE?"OriginalFilename",?"Aggregation4.dll0"????VALUE?"ProductName",?"Aggregation0"????VALUE?"ProductVersion",?"4.4.1.00"???END??END??BLOCK?"VarFileInfo"??BEGIN???VALUE?"Translation",?0x0409,?1200??END?END/*?End?of?Version?info?*/該文件描述了這個庫的版本等詳細信息,然后查看動態庫屬性,文件版本信息都已經寫進去了
Aggregationd.dll信息
好了,下面回到開始的問題,在編譯 Qt Creator 源碼后,為啥生成的動態庫會包含數字 4 后綴,其實主要原因就是上述說的這個原因,qtcreator.pri 文件中定義了版本號變量,所以生成的庫名稱后面會追加數字4
Qt官方文檔說明[1]
如何修改呢?其實知道的問題的原因后,修改起來也很簡單,主要有兩種方法
- 刪除 pro文件中 VERSION 字段定義;
- 手動編寫 .rc 文件,手動編寫后 qmake 不會給你自動生成,然后可以自定義名稱了;
參考資料
[1]
qmake描述文檔: https://doc.qt.io/qt-5/qmake-variable-reference.html,
總結
以上是生活随笔為你收集整理的删除隐藏版本信息 版本回退_Qt如何给程序添加版本信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复制出来的文本都是大写_vi或vim怎么
- 下一篇: 计算机逻辑运算的3种基本运算分别是什么(