當前位置:首頁 » 編程軟體 » c最新的編譯器

c最新的編譯器

發布時間: 2023-06-11 06:12:16

『壹』 常見的c語言編譯器是什麼

目前最流行的C語言編譯器有以下幾種:

1、GNU Compiler Collection 或稱GCC

GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。

GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。

2、Microsoft C 或稱 MS C

Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或稱 Turbo C

Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。

(1)c最新的編譯器擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下四個階段:

1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段將匯編語言翻譯成機器指令。

4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。

『貳』 gcc編譯器幾乎很難發現c語言中的語法錯誤嗎

1、使用gcc命令編譯c++程序遇到錯誤。
需要明確的是,gcc是可以編譯c++程序的。gcc,原名GNU C Compiler,最初是C語言的編譯器,但經過發展之後,它變成了一個可以支持C++、Fortran、Pascal、Objective-C、Java、Ada,以及Go與其他語言編譯的編譯器套件,其名稱也因此改為了GNU Compiler Collection。g++便是其中的一部分,用於處理c++語言。雖然大多數情況下,我們直接使用g++命令來編譯c++程序,但直接使用gcc命令也可以編譯c++程序的,當然前提是安裝了g++(gcc-c++)模塊。gcc命令會根據源程序的後綴名來決定實際使用的編譯器,編譯過程與直接使用g++完全一樣,但是,鏈接過程有點不同。g++命令會自動給你加上c++標准庫的鏈接,但gcc命令卻不會給你自動加上,因些需要手動加上。例如如下的程序:

#include <iostream>

int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
使用gcc命令編譯會報undefined reference的錯誤,使用g++命令就不會,但是使用gcc命令加上stdc++的鏈接庫就可以成功編譯。所以,如果是編譯c++程序,最好還是使用g++命令編譯吧。

2、undefined reference to XXX的問題

這個問題應該說是非常常見的一個問題了,通常情況下,這個問題是由於你使用了第三方的庫文件,卻沒有加上相應的庫的鏈接,導致編譯器找不到符號。這種情況也比較好解決,只要加上鏈接庫就可以了,具體命令有兩種寫法,一是使用-L和-l參數指定庫的路徑和庫名,其中,庫的文件名必須為libxxx.so或者libxxx.a的形式,其中的xxx就是庫名,跟在-l參數後面;第二種是直接寫上庫的文件名(相對路徑、絕對路徑都可以),這種寫些就是直接當這個庫文件是一個.o文件(目標文件)進行鏈接。

不過有時候,明明已經寫上了鏈接庫,可還是會有undefined reference的錯誤,這個候,可能就是鏈接順序的問題了。同樣是上述簡單的hello.cpp,我們使用gcc命令編譯(不用g++命令是因為它自動加了stdc++的鏈接庫,我們不好改順序)

可以看到,雖然加上了-lstdc++,但還是有undefined reference的錯誤。這是因為鏈接器在進行鏈接的時候,是從前往後找符號的。由於libstdc++.so庫中的的符號(std::cout,std::endl)是在hello.o(由hello.cpp編譯而來)中使用的,因此,當鏈接器從左至右拋描庫文件時,第一個碰到了stdc++庫,發現並沒有使用這個庫中的符號,於是就將這個庫給丟棄不用了,繼續往後鏈接hello.o的時候,發現了其中要使用一些符號,而這些符號是stdc++中的,而stdc++庫已經被鏈接器給扔了,所以就找不著了,就有了undefined reference。解決的方案也是兩個:一是按引用順序寫鏈接的目標文件的順序,如果是編譯可執行程序,就從包含main函數的.o文件開始寫,最基礎的庫寫在最右邊;二是加上-Wl,--as-needed參數,這個參數會將庫文件中加入NEED標識,而不管這個庫文件有沒有用到(也就是告訴鏈接器,那個暫時沒用到的庫先別扔了)。但是第二種方法好像對stdc++這個庫沒什麼作用,其他的第三方庫可以,具體原因是什麼還不太清楚,所以,最好寫編譯選項的時候,庫文件還是按引用順序寫吧。

『叄』 大家都用什麼C/C++編譯環境

了解的C/C++編譯器如下: x0dx0aGCC家族有 x0dx0aCygwin x0dx0aMingw32 x0dx0aDJGPP x0dx0aDev-C++(Mingw32) x0dx0a還有正宗的GNU GCC 2.95.5~3.0.0.4版本 x0dx0aMS家族有 x0dx0aMSC 5.0、6.0、7.0 x0dx0aMSQC 1.0、2.5 x0dx0aMSVC 1.0、4.2、6.0、7.0 x0dx0aBorland家族有 x0dx0aTC 1.0、2.0 x0dx0aTC++ 1.01、3.0 x0dx0aBC 3.0、3.1、4.0、4.5、5.0、5.02 x0dx0aBCB 3.0、5.0、6.0 x0dx0a其它有 x0dx0aIntel C/C++ 5.0 x0dx0aWatcom C/C++ 11.0、11.0c x0dx0aVectorC 1.3.3 x0dx0aIBM VisualAge for C++ x0dx0aDigitalMars C/C++ x0dx0aKAI C/C++ 4.03f for RedHat 7.2 x0dx0aLcc4.1 x0dx0aLCC-WIN32 2001-09-25~2002-04-28日版 x0dx0aSmall C x0dx0aCC386 x0dx0aPacific C x0dx0a另外還有C的解釋器 x0dx0aQuincy x0dx0aEic x0dx0aCINT x0dx0ax0dx0a上面提到的編譯器/解釋器,大部分我都使用過。現在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32這五種編譯器。 x0dx0ax0dx0a在GCC家族中GNU GCC是根本,其它的編譯器版本都是從它導出的。其中,Cygwin和Mingw32都是WIN32平台下的編譯器,DJGPP是DOS下的32位編譯器。大家所熟知的DEV-C++充其量只是GCC的一個外殼,它所自帶的編譯器就是Mingw32的一個版本。這些GCC的版本中,Cygwin是最大的,它與其說是一個編譯器,倒不如說是一套編程工具。它不僅有編譯器,還有其它很多的工具。其實,它就是一個UNIX系統在WIN32平台上的實現。實現了大多常用的UNIX工具,最近的版本中連Apache這樣的「工具」都集成進來的。不過,Cygwin雖然功能強大,但它卻不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因為太多其它的工具分散了人們的注意力。相比之下Mingw32就要好用得多,它只有最基本的幾個編程工具(只可惜它不自帶GDB)。GCC中並不只是C/C++編譯器,其中還有很多其它的編譯器如JAVA,Fortran,ADA等。它是一個編譯器集合,不過有些編譯器只能在UNIX系統上用。MS家族的編譯器就不用說了,大家對它們都很熟悉。VC 7.0(VC.NET)是它的最新產品。Borland家族也不用說,大家也是耳熟能詳。最近它才推出了BCB 6.0。 x0dx0ax0dx0a其它的編譯器如:Intel C/C++大家一看名稱就知道是Intel的東西,它和VC6完全兼容,不過要掛在VC6下才能用。Watcom C/C++是早先編譯器四國大戰中的一員,原本是很不錯的東西,可惜戰略不對,現在已不見聲息了。倒是以它為基礎的一個OpenWatcom現在還在奮戰。VectorC是我近日才發現的一個好東東,它是個純C的編譯器。IBM的VisualAge for C++原本是IBM想用來淌C++編譯器這片渾水的東西,不過IBM的戰略改了,它就被放棄了。DigitalMars C/C++的前身的Symantec C++(它也是編譯器四國大戰中的一員),不過現在Symantec不做了,於是它的作者就把它改成了DigitalMars C/C++開放給大家使用。以上這些都是WIN32平台上的東西。KAI C/C++是個很強大的C/C++編譯器,它是個多平台的編譯器。不過現在被INTEL收購了,已經停止開發了。Lcc4.1是個純C的編譯器它是開放源代碼的。不過不怎麼好用。LCC-WIN32是一個在LCC基礎上開發的C語言的集成開發環境,很好用,而且有很詳細的資料,FREE!Pacific C是一個純DOS的C的集成開發環境,就不多說了。Small C CC386都是開放源代碼的編譯器,它們都很簡單,應用來給大家學習編譯器的。Quincy Eic CINT都是C的解釋器,是用來讓大家學習C語言的其中CINT的功能很強大,還支持一些C++的特性。 x0dx0a當然還有很多其它的編譯器,這里我給出的編譯器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的編譯器還是以GNU的為主,其它的我就不是很清楚了。 x0dx0ax0dx0a在以上的編譯器中,最特別的就是VectorC這個東西只支持純C。但它卻號稱是最快的編譯器,不過經過我的試驗,它的確在有些情況下強過其它編譯器很多!而且它還有個互動式的優化器,可以讓你直接看到C代碼對映的匯編代碼。Cygwin和Mingw32為一母所生,其運行效果相差不大。它們生成的代碼效率都很不錯,編譯的速度也很快,最值得一提的是它們對C++的特性的支持算是所有編譯器中最完全的,而且它們還支持C99的大部分特性。這一點很是不錯!大家對MS的VC已經很熟悉了,本不用我多說。不過在它的最新的產品VC7.0中,有很大的改進。它對C++的特性的支持比6.0有了很大的提高,是我所用的編譯器中是僅次於GCC的。而且它編譯出的程序,運行速度很快!僅有少數時候次於VectorC與GCC,其它情況都是最快的!其平均運行速度是最快的。對Borland的產品我也無需多說。它的TC2.0與BC3.1都是我最喜歡的東西。可是現在的BCB卻大不如前了,編譯的速度和VC6一樣慢!IDE還有較多的BUG。最令人想不通的是它生成的代碼的運行速度很慢,比LCC-WIN32還慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的編譯器大家可能不熟,它太貴了!還要有VC的支持,很不劃算,而且編譯速度比VC6還慢。不過它的代碼質量很不錯。DigitalMars C/C++沒有什麼亮點,編譯速度較快,代碼執行速度適中,對C++特性支持還算不錯。LCC-WIN32是個很不錯的集成開發環境,它只支持純C。它的編譯速度極快!代碼執行速度較慢。不過它的最大亮點在於它的IDE,在所有的FREE編程工具中,它的IDE是最專業的,有很強大的代碼分析,管理功能。而且它提供了大量的編程資料。 x0dx0a我曾對一些編譯器的代碼執行效率做過一些測試,以下是概況: x0dx0a1. VectorC、VC 7.0 (極快) x0dx0a2. Intel C/C++、VC 6.0、GCC (很快) x0dx0a3. DigitalMars C/C++ (一般) x0dx0a4. LCC-WIN32、BCB、BC5.02 (較慢) x0dx0a當然,我所做的測試比較片面。不過在很大程度上已能反映其大概狀況。

『肆』 c語言開發軟體哪個最好

C語言基本上是大學計算機及其相關專業在大一上學期就會開的一門課程。

C語言作為一門起源比較早的編程語言,可以編程的手機軟體和電腦軟體非常多,下面我簡單介紹幾個,感興趣的朋友可以自己嘗試一下:

手機軟體

1.C語言編譯器:這是手機上的一個C語言編程軟體,可以直接在手機上編譯運行C語言程序,下面我簡單介紹一下這個軟體:

首先,下載安裝C語言編譯器,這個直接在手機應用商店中搜索就行,如下,大概也就12M左右,直接下載安裝就行:

安裝完成後,打開這個軟體,就可以直接編寫C語言程序了,效果如下,這里自帶有編譯器,可以直接編譯運行程序:

2.C++++編譯器:也即C4droid,手機上的一個C/C++編程軟體,基本功能和C語言編譯器差不多,也可以直接編譯運行C語言程序,下面我簡單介紹一下這個軟體:

首先,下載安裝C++編譯器,這個也直接在手機商店中搜索就行,如下,不大,也就3M左右,直接下載安裝就行:

安裝完成後,燃枯逗打開軟體,就可以直接編寫C語言程序了,效果如下,這里自帶有簡單的TCC編譯器,所以可以直接編譯程序,在擴展中你也可以下載GCC和G++編譯器:

電腦軟體

1.Dev-C++:這是Windows平台下一個免費、輕量級的C/C++集成開發環境,基本功能和早期的VC++6.0非常相似,自帶有GCC、GDB等編譯調試工具,因為沒有任何自動補全、語法檢查和提示的功能,所以對於初學者來說非常鍛煉基本功,在許多學校中都作為教學軟體使用:

2.Code:Blocks:這也是一個輕量級的C/C++開發環境,免費、開源、跨平台,相比較Dev-C++比較單一的功能來說,支持自動補全、語法提示和語法檢查,除此之外,還自帶有許多現成的工程模板,可以快速開發GUI、Qt、OpenGL等應用,插件擴展也比較豐富,對於初學者來說,也是一個非常不錯的選擇:

3.VisualStudio:這應該是Windows平台下使用最多的C/C++開發環境了,專業重量級的,由微軟自主設計研發,號稱宇宙第一IDE,插件擴展眾多,支持單元測試、代碼重構等高級功能,開發調試效率都非常高,因此在大型項目開發中經常會用到這個軟體,雖然對於初學者來說,早期不容易學習和掌握,但熟悉後,的確是一個編程開發利器:

4.Vim:這個是Linux環境下使用比較多的代碼編輯器敗巧,嚴格意義上說不是一個C語言開發軟體,但安裝GCC、GDB等工具後,也是一個非常不錯的C語言編程軟體,插件擴展眾多,皮賣佔用內存少,輕便靈活:

當然,還有許多其他C語言編程軟體,像C-free,CLion,Xcode等也都非常不錯,選擇適合自己的一種就行,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。

自帶編譯器環境:VC6.0++、VS2008以上系列、C-Free(自帶編譯器有點老,可以自行換)

不帶編譯器:code:blocks(自行下載編譯器:TDM-GCC、MinGW,這兩個二選一)

小型IDE:C-Free、code::blocks

超輕便版:notepad++和TDM-GCC,notepad++是文本編輯器自帶各種語言的語法高亮,TDM-GCC是編譯器。notepad++寫代碼,命令行調用gcc編譯器編譯代碼(編譯器選MinGW也可以,我用的是TDM,安裝簡單方便)。


熱點內容
安卓怎麼看蘋果手機的行駛軌跡 發布:2025-02-11 09:26:19 瀏覽:884
h板電影種子ftp 發布:2025-02-11 09:06:10 瀏覽:738
c語言數據類型定義 發布:2025-02-11 09:00:38 瀏覽:237
一個小時如何選擇伺服器 發布:2025-02-11 08:58:14 瀏覽:442
網易我的世界伺服器推薦國服 發布:2025-02-11 08:56:34 瀏覽:241
電視父母鎖屏密碼應該會是什麼 發布:2025-02-11 08:36:42 瀏覽:892
梅花適合用哪些植物進行配置 發布:2025-02-11 08:30:54 瀏覽:252
安卓手機如何像蘋果一樣彈窗 發布:2025-02-11 08:26:33 瀏覽:912
壓縮文件掃碼 發布:2025-02-11 08:20:55 瀏覽:258
小米5安卓70怎麼分屏 發布:2025-02-11 08:00:58 瀏覽:140