㈠ 最全的MSVC編譯參數,收藏備用,MinGW與MSVC編譯的區別
CL [option…] file… [option | file]… [lib…] [@command-file] [/link link-opt…]
選項→用途 option→參數可以使用/或者-,具體含義可以使用/HELP option看到解釋。 file→一個或者多個源文件,.obj文件或者.lib文件,CL編譯源文件傳遞.obj和.lib給linker lib→一個或多個庫文件,cl將傳送給linker command-file→一個保存多個選項的文件 link-opt→一個或多個鏈接操作,cl將傳遞給linkercl用到的環境變數
變數INCLUDE→指定vc的頭文件位置,windows sdk的頭文件位置。等等,中間用;分割。 LIB→指定vc的庫,windows sdk的庫路徑。中間用;分割。
優化參數
選項→用途 /O1→目標尺寸最小 /O2→目標速度最快 /Ob→控制inline擴展,/Ob{0/1/2} /Od→關閉優化 /Og→使用全局優化 /Oi→產生固定函數 /Os→偏向尺寸優化 /Ot→偏向速度優化 /Ox→最佳優化 /Oy→忽略幀指針(僅x86) /favor→對特定架構優化。/favor:{blend/ATOM/AMD64/INTEL64}
產生代碼
選項→用途 /arch→產生代碼時使用SSE或者SSE2指令(僅x86) /clr→產生運行在the common language runtime上的輸出文件 /EH→指定異常處理模型/EH{s/a}[c][r][-] /fp→指定浮點指針行為/fp:[precise/except[-]/fast/strict] /GA→對windows應用進行優化 /Gd→使用_cdecl調用轉換(僅x86) /Ge→激活堆棧探測 /GF→打開字元串池 /Gh→調用鉤子函數_penter /GH→調用鉤子函數_pexit /GL→打開整個程序優化 /Gm→打開最小重建造 /GR→打開運行時類型信息(RTII) /Gr→使用_fastcall調用轉換(僅x86) /GS→檢查緩沖區安全 /Gs→控制堆棧探測 /GT→使用靜態線程本地存儲時保證數據分配安全 /guard:cf→加入控制流安全檢查 /Gv→使用_vectorcall調用轉換(僅x86) /Gw→打開整個程序的全局數據優化 /GX→打開同步異常處理 /Gy→打開函數級鏈接 /GZ→打開快速檢查,等同於/RTC1 /Gz→使用_stdcall調用轉換(僅x86) /homeparams→強制參數通過寄存器傳遞,僅x64編譯 /hotpatch→創建一個補丁鏡像 /Qfast_transcendentals→Generates fast transcendentals. /QIfist→禁止從浮點轉換為整數是調用函數_ftol(僅x86) /Qimprecise_fwaits→在try塊內部移除fwait命令 /Qpar→打開自動並行循環 /Gpar-report→打開一個並行循環的報告級 /Gsafe_fp_loads→對浮點值使用整數移動指令,禁止某些浮點指令的裝入優化 /RTC)→打開運行時錯誤檢查 /volatile)→解釋執行選擇怎樣的volatile關鍵字
輸出文件
選項→用途 /doc→處理注釋文檔到一個XML文件 /FA→配置匯編列表文件 /Fa→創建匯編列表文件 /Fd→刪除程序資料庫文件 /Fe→重命名執行文件 /Fi→指定預處理輸出文件名 /Fm→創建mapfile /Fo→創建object文件 /Fp→指定預編譯頭文件名 /FR /Fr→參數瀏覽文件
預處理
選項→用途 /AI→Specifies a directory to search to resolve file references passed to the #using directive. /C→Preserves comments ring preprocessing. /D→定預處理宏 /E→復制預處理到標准輸出 /EP→復制預處理到標准輸出 /FI→預處理指定的include文件 /FU→Forces the use of a file name, as if it had been passed to the #using directive. /Fx→合並注入代碼和源代碼 /I→指定include文件搜索路徑 /P→寫預處理到一個輸出文件 /U→刪除預定義宏 /u→和/U相同 /X→忽略標准include路徑
語言
選項→用途 /openmp→打開#pragma omp在源代碼中 /vd→禁止或者打開隱藏vtordisp類的成員 /vmb→Uses best base for pointers to members. /vmg→Uses full generality for pointers to members. /vmm→申明多繼承 /vms→申明單繼承 /vmv→申明虛擬繼承 /Z7→產生和C 7.0兼容的調試信息 /Za→禁用語音擴展 /Zc→指定一個標准行為在/Ze下 /Ze→打開語音擴展 /Zg→產生函數原型 /ZI→在程序資料庫中包括調試信息(僅x86) /Zi→產生完整的調試信息 /Zl→從.obj文件中刪除默認的庫名 /Zpn→打包結構成員 /Zs→僅做語法檢查 /ZW→產生一個輸出文件能運行在windows運行環境
鏈接
選項→用途 /F→設置堆棧尺寸 /LD→創建動態鏈接庫 /LDd→創建一個調試動態鏈接庫 /link→傳輸指定的參數給link /LN→創建一個MSIL模型 /MD→編譯創建一個 多線程 DLL,使用msvcrt.lib /MDd→編譯創建一個調試多線程 DLL,使用msvcrtd.lib /MT→編譯創建一個多線程執行程序,使用libcmt.lib /MTd→編譯場景一個調試多線程執行程序,使用libcmtd.lib
預編譯頭
選項→用途 /Y-→在當前建造中忽略其他全部預處理頭編譯選項 /Yc→創建一個預編譯頭文件 /Yd→在全部的object文件中放置完整的調試信息 /Yu→在編譯期間使用預編譯頭文件
雜項
選項→用途 /?→列出編譯選項 @→指定一個響應文件 /analyze→打開代碼分析 /bigobj→Increases the number of addressable sections in an .obj file. /c→編譯但不鏈接 /cgthreads→給cl.exe指定一個線程數用來優化在建造過程中的性能 /errorReport→打開在vc++終端中提供內部編譯錯誤信息(ICE) /FC→顯示傳遞給cl.exe的源代碼的完整路徑到一個文件中 /FS→強制寫入一個程序資料庫文件(PDB) /H→現在擴展名的長度 /HELP→列出編譯選項 /J→改變默認char類型 /kernel→編譯器和鏈接器將創建一個可以在windows內核中執行的執行程序 /MP→同時建造多源代碼文件 /nologo→禁止顯示啟動版權標志 /sdl→打開一些附加的安全功能和警告 /showIncludes→在編譯期間顯示全部include文件的列表 /Tc/TC→指定C源代碼 /Tp/TP→指定C++源代碼 /V→版本信息 /Wall→打開全部警告,包括默認關閉的警告 /W→警告級別 /w→關閉全部警告 /WL→打開在用命令行編譯C++源代碼時使用一行顯示錯誤和警告信息 /Wp64→偵測可能的64-bit問題 /Yd→在對象文件中放置完整的調試信息 /Yl→當創建一個調試庫時植入PCH引用 /Zm→指定一個預編譯頭分配限制
MinGW與MSVC編譯的區別
本人使用的是QT5.6,當時我們選擇下載的是第一個VS2015版本,也就是通過MSVC方式編譯。與MinGW相比,MSVC在代碼優化、鏈接速度、調試信息完整度、異常處理等方面表現出色。MSVC通常支持更多的語言特性,提供更強大的開發工具,而MinGW更輕量級,適合在Linux和Unix系統上使用,對於某些特定平台的兼容性可能更好。編譯器本身的選擇應根據項目需求、平台、團隊習慣以及開發效率的綜合考量來決定。
㈡ Qt介紹與安裝指南(精簡)
Qt介紹與安裝指南(精簡)Qt介紹Qt 是一個跨平台的 C++ 圖形用戶界面應用程序開發框架,廣泛用於開發 GUI 程序,也可用於開發非 GUI 程序,如控制台工具和伺服器。Qt 提供了豐富的 API,使得開發者能夠輕松創建功能強大且美觀的用戶界面,並支持多種操作系統,包括 Windows、Linux 和 macOS 等。
Qt安裝指南(Windows 平台)一、下載 Qt 安裝包
前往 Qt 官方網站下載適用於 Windows 平台的安裝包。通常,Qt 提供了在線安裝器和離線安裝包兩種下載方式,用戶可以根據自己的需求選擇合適的下載方式。
二、選擇編譯器
在安裝 Qt 的過程中,需要選擇編譯器。Qt 支持兩種編譯器:MinGW 和 MSVC。
三、選擇組件
在安裝 Qt 的過程中,需要仔細選擇所需的組件。以下是一些關鍵的組件選擇建議:
Qt 版本:選擇最新版本的 Qt 庫,以確保獲得最新的功能和修復。如果需要舊版本的 Qt 庫,可以在組件選擇界面的右側搜索欄中輸入「archive」,然後篩選出舊版本的 Qt 庫進行安裝。
編譯器版本:根據選擇的編譯器(MinGW 或 MSVC),選擇相應的 Qt 庫版本。例如,如果選擇 MinGW 編譯器,則應選擇用 MinGW 編譯的 Qt 庫。
開發工具:在「Developer and designer tools」下,可以選擇安裝 Qt Creator(Qt 的集成開發環境)、Qt Designer(用於設計用戶界面的工具)以及其他有用的開發工具。這些工具將大大提高開發效率。
其他組件:根據項目的需求,可以選擇安裝其他相關的 Qt 組件,如 Qt WebEngine(用於開發基於 Web 的應用程序)、Qt Charts(用於繪制圖表)等。
四、安裝過程
五、驗證安裝
安裝完成後,可以通過以下步驟驗證 Qt 是否安裝成功:
六、安裝組件圖示
在組件選擇界面中,可以根據上述建議仔細選擇所需的組件。注意區分不同版本的 Qt 庫和編譯器,以確保選擇正確的組件進行安裝。
通過以上步驟,您就可以成功安裝 Qt 並開始開發跨平台的 GUI 應用程序了。祝您開發愉快!