當前位置:首頁 » 編程語言 » c語言微軟編譯器
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言微軟編譯器

發布時間: 2022-08-08 09:13:45

A. c語言怎麼用微軟的軟體編譯(過程)

DOS下面是沒有cl的,cl是Windows下命令行方式的編譯工具,IDE也是調用它編譯的。直接cl.exe /help就能看到幫助,貼給你吧 VS2010的(2012的可以交叉編譯ARM架構的目標代碼)

用於 80x86 的 Microsoft (R) 32 位 C/C++ 優化編譯器 16.00.40219.01 版
版權所有(C) Microsoft Corporation。保留所有權利。

C/C++ 編譯器選項

-優化-

/O1 最小化空間 /O2 最大化速度
/Ob<n> 內聯擴展(默認 n=0) /Od 禁用優化(默認)
/Og 啟用全局優化 /Oi[-] 啟用內部函數
/Os 優選代碼空間 /Ot 優選代碼速度
/Ox 最大化優化 /Oy[-] 啟用幀指針省略

-代碼生成-

/GF 啟用只讀字元串池 /Gm[-] 啟用最小重新生成
/Gy[-] 分隔鏈接器函數 /GS[-] 啟用安全檢查
/GR[-] 啟用 C++ RTTI /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/EHs 啟用 C++ EH (沒有 SEH 異常) /EHa 啟用 C++ EH (w/ SEH 異常)
/EHc 外部「C」默認為 nothrow
/fp:<except[-]|fast|precise|strict> 選擇浮點模式:
except[-] - 在生成代碼時考慮浮點異常
fast -「fast」浮點模式;結果可預測性比較低
precise -「precise」浮點模式;結果可預測
strict -「strict」 浮點模式(意味著 /fp:except)
即使使用 /fp:except,/Qfast_transcendentals 也生成內聯內部 FP
/GL[-] 啟用鏈接時代碼生成 /GA 為 Windows 應用程序進行優化
/Ge 對所有函數強制堆棧檢查 /Gs[num] 控制堆棧檢查調用
/Gh 啟用 _penter 函數調用 /GH 啟用 _pexit 函數調用
/GT 生成纖程安全 TLS 訪問 /RTC1 啟用快速檢查(/RTCsu)
/RTCc 轉換為較小的類型檢查 /RTCs 堆棧幀運行時檢查
/RTCu 未初始化的局部用法檢查
/clr[:option] 為公共語言運行時編譯,其中 option 是:
pure - 生成只包含 IL 的輸出文件(沒有本機可執行代碼)
safe - 生成只包含 IL 的可驗證輸出文件
oldSyntax - 接受 Visual C++ 2002/2003 的託管擴展語法
initialAppDomain - 啟用 Visual C++ 2002 的初始 AppDomain 行為
noAssembly - 不產生程序集 /Gd __cdecl 調用約定
/Gr __fastcall 調用約定 /Gz __stdcall 調用約定
/GZ 啟用堆棧檢查(/RTCs) /QIfist[-] 使用 FIST 而不是 ftol()
/hotpatch 確保可熱修補映像的函數填充
/arch:<SSE|SSE2|AVX> CPU 架構的最低要求,以下選項之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令
AVX - 支持使用 Intel(R) 高級矢量擴展指令
/Qimprecise_fwaits 僅在「try」邊界而不是「try」內部生成 FWAITs
/Qsafe_fp_loads 生成安全 FP 負載

-輸出文件-

/Fa[file] 命名程序集列表文件 /FA[scu] 配置程序集列表
/Fd[file] 命名 .PDB 文件 /Fe<file> 命名可執行文件
/Fm[file] 命名映射文件 /Fo<file> 命名對象文件
/Fp<file> 命名預編譯頭文件 /Fr[file] 命名源瀏覽器文件
/FR[file] 命名擴展 .SBR 文件 /Fi[file] 命名預處理的文件
/doc[file] 處理 XML 文檔注釋,並可選擇命名 .xdc 文件

-預處理器-

/AI<dir> 添加到程序集搜索路徑 /FU<file> 強制使用程序集/模塊
/C 不抽出注釋 /D<name>{=|#}<text> 定義宏
/E 預處理到 stdout /EP 預處理到 stdout,無行號
/P 預處理到文件 /Fx 將插入的代碼合並到文件中
/FI<file> 命名強制包含文件 /U<name> 移除預定義的宏
/u 移除所有預定義的宏 /I<dir> 添加到包含搜索路徑
/X 忽略「標准位置」

-語言-

/Zi 啟用調試信息 /Z7 啟用舊式調試信息
/Zp[n] 在 n 位元組邊界上包裝結構 /Za 禁用擴展
/Ze 啟用擴展(默認) /Zl 省略 .OBJ 中的默認庫名
/Zg 生成函數原型 /Zs 只進行語法檢查
/vd{0|1|2} 禁用/啟用 vtordisp /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言合規性,這里的參數可以是:
forScope[-] - 對范圍規則強制使用標准 C++
wchar_t[-] - wchar_t 是本機類型,不是 typedef
auto[-] - 對 auto 強制使用新的標准 C++ 含義
trigraphs[-] - 啟用三元祖(默認為關閉)
/ZI 啟用「編輯並繼續」調試信息 /openmp 啟用 OpenMP 2.0 語言擴展

- 雜項 -

@<file> 選項響應文件 /?, /help 列印此幫助消息
/bigobj 生成擴展的對象格式 /c 只編譯,不鏈接
/errorReport:option 將內部編譯器錯誤報告給 Microsoft
none - 不發送報告 prompt - 提示立即發送報告
queue - 在下一次管理員登錄時,提示發送報告(默認)
send - 自動發送報告 /FC 診斷中使用完整路徑名
/H<num> 最大外部名稱長度 /J 默認 char 類型是 unsigned
/MP[n] 最多使用「n」個進程進行編譯 /nologo 取消顯示版權信息
/showIncludes 顯示包含文件名 /Tc<source file> 將文件編譯為 .c
/Tp<source file> 將文件編譯為 .cpp /TC 將所有文件編譯為 .c
/TP 將所有文件編譯為 .cpp /V<string> 設置版本字元串
/w 禁用所有警告 /wd<n> 禁用警告 n
/we<n> 將警告 n 視為錯誤 /wo<n> 發出一次警告 n
/w<l><n> 為 n 設置警告等級 1-4 /W<n> 設置警告等級(默認 n=1)
/Wall 啟用所有警告 /WL 啟用單行診斷
/WX 將警告視為錯誤 /Yc[file] 創建 .PCH 文件
/Yd 將調試信息放在每個 .OBJ 中 /Yl[sym] 為調試庫插入 .PCH 引用
/Yu[file] 使用 .PCH 文件 /Y- 禁用所有 PCH 選項
/Zm<n> 最大內存分配(默認為 %) /Wp64 啟用 64 位埠定位警告

-鏈接-

/LD 創建 .DLL /LDd 創建 .DLL 調試庫
/LN 創建 .netmole /F<num> 設置堆棧大小
/link [鏈接器選項和庫] /MD 與 MSVCRT.LIB 鏈接
/MT 與 LIBCMT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/MTd 與 LIBCMTD.LIB 調試庫鏈接

-代碼分析-

/analyze[:WX-] 啟用代碼分析
WX- - 即使調用了 /WX,也不應將代碼分析警告視為錯誤

B. 目前主流的C語言編譯軟體是什麼

C語言相比其他很多新興的、復雜的語言,語法還是簡單一些,較好實現的。

所以在C語言幾十年的發展中出現了各式各樣的編譯器,還有一些容易被誤解為編譯器的IDE。


這里列舉幾個主流的:

  1. GCC

    毫無疑問,GCC幾乎是unix及linux系統中最通用的編譯器套件,幾乎所有的linux發行版都預裝了GCC作為C語言的默認編譯器。除了對C語言的支持,GCC還支持C++、Objective-C等多種語言。GCC早在1987就由Richard Stallman作為GNU計劃的一部分發布。

  2. Clang

    Clang是近幾年新興的C/C++以及Objective-C的編譯器,Apple是其主要投資者,其最初的開發者已加盟Apple。雖說是新興,但其對C/C++標準的支持不亞於GCC等老牌編譯器,並且外部介面和GCC完全兼容,並且因其模塊化、錯誤提示完善等優點已經越來越受到重視。一些如FreeBSD等項目已將clang作為默認編譯器。

    其實Clang並不是一個完整的編譯器,而是作為同一批開發者開發的另一個備受關注的虛擬機(類似於JVM)的llvm的一個前端開發,只是負責將C語言源碼編譯為llvm IR的中間語言,再由llvm編譯為目標代碼,這樣做可以讓其可移植性更好。

  3. Microsoft Visual C++

    作為擁有可視化集成編程系統的編譯器,VC被很多使用Windows作為開發環境的初學者使用。詳見網路的介紹

    http://ke..com/view/2070966.htm?fromtitle=vc&fromid=7792954&type=syn#viewPageContent


C. 微軟用什麼C語言編譯器

windows是本身就是C語言寫的,C語言是編程的基礎,所以微軟的編譯器就是Microsoft Visual C++; Microsoft Visual C++,(簡稱Visual C++、MSVC、VC++或VC)是Microsoft公司推出的開發Win32環境程序,面向對象的可視化集成編程系統。 它不但具有微軟用什麼C語言編譯器

D. 適合win10系統的c語言編譯器

桌面操作系統

對於當前主流桌面操作系統而言,可使用 VisualC++、GCC以及 LLVM Clang 這三大編譯器。

Visual C++(簡稱 MSVC)只能用於 Windows 操作系統;GCC 和 LLVM Clang除了可用於Windows操作系統之外,主要用於 Unix/Linux操作系統。

像現在很多版本的 Linux 都默認使用 GCC 作為C語言編譯器,而像 FreeBSD、macOS 等系統默認使用 LLVM Clang 編譯器。由於當前 LLVM 項目主要在 Apple 的主推下發展的,所以在 macOS中,Clang 編譯器又被稱為 Apple LLVM 編譯器。

MSVC 編譯器主要用於 Windows 操作系統平台下的應用程序開發,它不開源。用戶可以使用 Visual Studio Community 版本來免費使用它,但是如果要把通過 Visual Studio Community 工具生成出來的應用進行商用,那麼就得好好閱讀一下微軟的許可證和說明書了。

而使用 GCC 與 Clang 編譯器構建出來的應用一般沒有任何限制,程序員可以將應用程序隨意發布和進行商用。

MSVC 編譯器對 C99 標準的支持就十分有限,加之它壓根不支持任何 C11 標准,所以本教程中設計 C11 的代碼例子不會針對 MSVC 進行描述。所幸的是,Visual Studio Community 2017 加入了對 Clang 編譯器的支持,官方稱之為——Clang with Microsoft CodeGen,當前版本基於的是 Clang 3.8。

也就是說,應用於 Visual Studio 集成開發環境中的 Clang 編譯器前端可支持 Clang 編譯器的所有語法特性,而後端生成的代碼則與 MSVC 效果一樣,包括像 long 整數類型在 64 位編譯模式下長度仍然為 4 個位元組,所以各位使用的時候也需要注意。

為了方便描述,本教程後面涉及 Visual Studio 集成開發環境下的 Clang 編譯器簡稱為 VS-Clang 編譯器。

嵌入式系統

而在嵌入式系統方面,可用的C語言編譯器就非常豐富了,比如:

  • 用於 Keil 公司 51 系列單片機的 Keil C51 編譯器;

  • 當前大紅大紫的 Arino 板搭載的開發套件,可用針對 AVR 微控制器的 AVRGCC 編譯器;

  • ARM 自己出的 ADS(ARM Development Suite)、RVDS(RealView Development Suite)和當前最新的 DS-5 Studio;

  • DSP 設計商 TI(Texas Instruments)的 CCS(Code Composer Studio);

  • DSP 設計商 ADI(Analog Devices,Inc.)的 Visual DSP++ 編譯器,等等。


  • 通常,用於嵌入式系統開發的編譯工具鏈都沒有免費版本,而且一般需要通過國內代理進行購買。所以,這對於個人開發者或者嵌入式系統愛好者而言是一道不低的門檻。


  • 不過 Arino 的開發套件是可免費下載使用的,並且用它做開發板連接調試也十分簡單。Arino 所採用的C編譯器是基於 GCC 的。


  • 還有像樹莓派(Raspberry Pi)這種迷你電腦可以直接使用 GCC 和 Clang 編譯器。此外,還有像 nVidia 公司推出的 Jetson TK 系列開發板也可直接使用 GCC 和 Clang 編譯器。樹莓派與 Jetson TK 都默認安裝了 Linux 操作系統。


  • 在嵌入式領域,一般比較低端的單片機,比如 8 位的 MCU 所對應的C編譯器可能只支持 C90 標准,有些甚至連 C90 標準的很多特性都不支持。因為它們一方面內存小,ROM 的容量也小;另一方面,本身處理器機能就十分有限,有些甚至無法支持函數指針,因為處理器本身不包含通過寄存器做間接過程調用的指令。


  • 而像 32 位處理器或 DSP,一般都至少能支持 C99 標准,它們本身的性能也十分強大。而像 ARM 出的 RVDS 編譯器甚至可用 GNU 語法擴展。


  • 下圖展示了上述C語言編譯器的分類。


E. c語言用什麼編譯器

c語言可以用的編譯器有很多,包括Microsoft Visual C++、My Eclipse、Turbo C和gcc編譯器等。Microsoft Visual C++是微軟公司的免費C語言編程軟體,是用戶安裝時必須安裝的運

F. C語言在windows平台上的編譯器有哪些

Windows平台的C編譯器通常是Microsoft Visual C++ 最高版本6.0
和Borland的Borland C++ Builder 最高版本好像也是6.0
自從微軟在Windows平台上的C編譯器取得霸主地位後,就沒有發布過更新版本的32位C編譯器了。
另外值的一提的就是C++ .NET 是微軟.NET計劃中的一個組件,它可以把C++代碼編譯成為.NET平台的二進制碼,但需要.NET 運行環境(Runtime)的支持才能跑起來。

G. window內自帶的C語言編譯器怎麼用

1、首先,輸入【#include】。


注意事項:

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

H. microsoft visual c++2010 是C語言編譯器么

Microsoft Visual C++ 2010 是 C/C++ 語言 的編譯器。

也就說,如果機器上安裝了 Microsoft Visual C++ ,就可以完成對 C/C++ 源代碼的編譯了。Microsoft Visual C++ 作為功能強大的 IDE —— Visual Studio (VS)的一部分,用戶群十分龐大,它一般都是伴隨著 Visual Studio 2010 安裝上的。另外的安裝途徑,還包括 QT 的安裝,就是說如果你之前安裝過 QT,也會帶來 Microsoft Visual C++ 編譯環境。

另外,和 Microsoft Visua C++ 同等關系是,gcc 編譯器。gcc 是 GNU 下的一款編譯器,Unix/Linux 系統幾乎從誕生,就和 gcc 綁定在了一起。而因為它開源的天性,各種開源項目都是用的 gcc。現在的 gcc 的主要特點是,對最新 c/c++ 語言的標准支持及時,近些年在 Windows 平台上的應用也越來越廣泛。其實還得益於,一些工具鏈例如 Eclipse,對 gcc 編譯器的青睞。

MSVC 和 gcc 比起來的話,各有優缺。如果我們項目中有 MFC, ATL 這些東西,那隻能選擇 MSVC,因為 gcc 並沒有對其的支持。而一旦涉及 SSE, intrinsics, 和inline assembly 這些的時候,gcc 會表現出明顯的優勢。

所以我們可以說 Microsoft Visual C++ 2010 是一款不錯的 C/C++ 語言編譯器。

I. win7下c語言編譯器有那些

1、常用的是微軟自家的cl編譯器,需要安裝vc/vs等集成開發環境。如果是程序員專業開發,一般使用vs,如果是普通學習c語言,可以安裝vc6.0,目前vc6.0完美運行於win7 32位及64位系統。

2、另外還有gcc編譯器,實際上是gcc的windows版本,此類的IDE有devc++,也可以安裝cygwin,一款用於在windows模擬linux環境的程序。