msvc編譯器
A. qt msvc2010需要什麼調試器和編譯器
QtCreator是專門針對Qt開發的.所以使用起來比較方便,安裝也沒那麼復雜.適合初學者.vs2010是微軟搞的.編譯速度那是一個快啊.但是因為本身不支持Qt庫所以要安裝插件啊,什麼的比較復雜.適合高手
B. 如何用msvc命令行編譯程序
cl.exe是微軟MSVC的編譯器。既然你使用Qt5.3.0,那麼你電腦上應該裝有VS2013吧。如果有,那麼cl.exe應該位於你的VS的安裝路徑下的VC\bin子文件夾下。把這個路徑添加到環境變數中,再make試試。
C. 如何單獨提取出MSVC2017編譯器並在其他IDE使用
可以參考xmake的實現,xmake裡面就是自動探測系統安裝的vs編譯環境,然後自動進行構建,主要還是通過載入vcvarsall.bat,來導入path, lib, include等環境變數,然後就可以直接調用cl.exe/link.exe等編譯器、鏈接器進行編譯鏈接了。。
對於vcvarsall.bat的探測,vs2017以前的版本,可以通過VSXXXCOMNTOOLS環境變數來發現,例如:VS140COMNTOOLS對應 vs2015。。但是vs2017之後就沒這個環境變數了,因此更加通用可靠的探測方式,是從注冊表中查找,例如,vs2017的注冊表項:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VS7;15.0)\\VC\\Auxiliary\\Build
vs2017之前版本路徑如下:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VS7;14.0)\\VC
64bits版本,Microsoft之前再加個Wow6432Node。。
D. 如果僅考慮 Windows 平台,不用 msvc 而去用 gcc 的理由有哪些
1、大部分跨平台的大型C程序(如ffmpeg)早已完全使用C99標准編寫,而msvc的編譯器CL直到2015年才較好地支持了C99;
2、msvc的側重點是對C++標準的支持以及對Windows SDK的支持,而不是對C語言的支持。
3、msvc的編譯器很難用於生成和環境無關的代碼,用來編譯像Bootloader、系統內核之類的特殊程序時會有麻煩。
4、msvc的編譯器CL的命令行參數和gcc、clang等幾乎完全不兼容,所有的makefile和其他腳本都必須專門為其做較大改動。
5、msvc工具鏈(編譯器、鏈接器、nmake等)的ABI和gnu工具鏈的只有單向兼容,無法鏈接由gnu工具鏈生成的庫。
E. 有關MSVC編譯器和MinGW編譯器之間的差異如何
MSVC不能跨平台 MSVC比MinGW快 兩個編譯器的區別,各自帶的標准庫的區別。
F. qtcreater 怎麼設置msvc編譯
該方法可以使用在win 8.
1、編譯Qt 5.0.2,編譯器為Msvc 2012
2、下載Cdb.exe,這個是給控制台調試代碼用的,Msvc用的調試器是WinDbg,所以安裝vc是沒有Cdb的,網址:
注意:現在上面說的網址已經不能用了,沿用上面的網址進去下載 WDK 8,這個對應的VS 2012 for win 7, 這個安裝很慢。或者下載2010的對應的CDB,下載網址:
C:\WinDDK\7600.16385.1\Debuggers
這個下面是有CDB的。
3、完成後安裝。
4、打開Qt Creator,在"工具"->"選項"裡面如下設置地方點擊自動檢測即可:
G. 如何確定VS編譯器版本
MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2011)
MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)
MSVC++ 9.0 _MSC_VER = 1500 (Visual Studio 2008)
MSVC++ 8.0 _MSC_VER = 1400 (Visual Studio 2005)
MSVC++ 7.1 _MSC_VER = 1310 (Visual Studio 2003)
MSVC++ 7.0 _MSC_VER = 1300 (Visual Studio 2002)
MSVC++ 6.0 _MSC_VER = 1200
MSVC++ 5.0 _MSC_VER = 1100
example:
#if (_MSC_VER == 1300) //vc7
#import "acax16ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1200) //vc6
#import "acad.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1400) //vc8
#import "acax17ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1500) //vc9
#import "acax18ENU.tlb" no_implementation raw_interfaces_only named_guids
#endif
H. 如何查看vs編譯器版本
MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2011)
MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)
MSVC++ 9.0 _MSC_VER = 1500 (Visual Studio 2008)
MSVC++ 8.0 _MSC_VER = 1400 (Visual Studio 2005)
MSVC++ 7.1 _MSC_VER = 1310 (Visual Studio 2003)
MSVC++ 7.0 _MSC_VER = 1300 (Visual Studio 2002)
MSVC++ 6.0 _MSC_VER = 1200
MSVC++ 5.0 _MSC_VER = 1100
example:
#if (_MSC_VER == 1300) //vc7
#import "acax16ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1200) //vc6
#import "acad.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1400) //vc8
#import "acax17ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1500) //vc9
#import "acax18ENU.tlb" no_implementation raw_interfaces_only named_guids
#endif
I. 有MSVC編譯器的命令行大全么
1 cl,MSVC編譯器
/c:只編譯鏈接
/Za:禁止語言擴展
/link:鏈接指定的模塊或給鏈接器傳遞參數
/Od:禁止優化
/O2:以允許速度最快為目標優化
/O1:以最節省空間為目標優化
/GR或/GR-:開啟或關閉RTTI
/Gy:開啟函數級別鏈接
/GS或/GS-:開啟或關閉
/Fa:輸出匯編文件
/E:只進行預處理並且把結果輸出
/I:指定頭文件包含目錄
/Zi:啟用調試信息
/LD:編譯產生DLL文件
/LDd:編譯產生DLL文件(調試版)
/MD:與動態多線程版本運行庫MSVCRT.LIB鏈接
/MDd:與調試版動態多線程版本運行庫MSVCRTD.LIB鏈接
/MT:與靜態多線程版本運行庫LIBCMT.LIB鏈接
/MTd:與調試版靜態多線程版本運行庫LIBCMTD.LIB鏈接
2 link,MSVC鏈接器
/BASE:address:指定輸出文件的基地址
/DEBUG:輸出調試模式版本
/DEF:filename:指定模塊定義文件.DEF
/DEFAULTLIB:library:指定默認運行庫
/DLL:產生DLL
/ENTRY:symbol:指定程序路口
/EXPORT:symbol:指定某個符號位導出符號
/HEAP:指定默認堆大小
/LIBPATH:dir:指定鏈接時庫搜索路徑
/MAP:產生鏈接MAP文件
/NODEFAULTLIB:禁止默認運行庫
/OUT:指定輸出文件名
/RELEASE:已發布版本產生輸出文件
/STACK:指定默認棧大小
/SUBSYSTEM:指定子系統
3 mpbin,MSVC的COFF/PE文件查看器
/ALL:顯示所有信息
/ARCHIVEMEMBERS:顯示LIB文件中的所有目標文件列表
/DEPENDENTS:顯示文件的動態鏈接依賴關系
/DIRECTIVES:顯示鏈接器指示
/DISASM:顯示反匯編
/EXPORTS:顯示導出函數表
/HEADERS:顯示文件頭
/IMPORTS:顯示導入函數表
/LINENUMBERS:顯示行號信息
/SECTION:name:顯示某個段
/SECTION:顯示文件概要信息
/SYMBOLS:顯示文件符號表
/TLS:顯示線程局部存儲TLS信息
J. QT中如何把msvc編譯器換成mingw編譯器
把msvc的Qt卸載,然後在官網下載自帶MinGW的Qt版本,傻瓜式的next。MinGW版本的Qt很容易安裝