⑴ C語言編譯器和IDE的選擇
C語言編譯器和IDE的選擇是Windows的IDE使用Visual Studio或者Dev C++,XP或者Win7的IDE使用C-Free。Linux的IDE使用GCC,Mac OS X的IDE使用Xcode。
在Windows下,可執行程序(Executable Program)大部分是.exe程序,它是一系列計算機指令和數據的集合。這些指令都是二進制形式的,CPU可以直接識別,毫無障礙;但是對於程序員,它們非常晦澀,難以記憶和使用。
計算機發展初期,程序員就是使用這些二進制形式的CPU指令來編寫程序的。
直接使用CPU指令編程對程序員來說簡直是噩夢,尤其是當程序比較大的時候,不但編寫麻煩,需要頻繁查詢指令手冊,而且除錯會異常苦惱,要直接面對一堆二進制數據,讓人眼花繚亂。另外,用CPU指令編程步驟繁瑣,要考慮各種邊界情況和底層問題,開發效率十分低下。
這就倒逼程序員開發出了編程語言,提高自己的生產力;例如匯編、C語言、C++、java、Python、Go語言等,都是在逐步提高開發效率。至此,編程終於不再是只有極客能做的事情了,不了解計算機的讀者經過一定的訓練也可以編寫出有模有樣的程序。
選擇合適的IDE:
實際開發中,除了編譯器是必須的工具,我們往往還需要很多其他輔助軟體,例如編輯器、調試器、文件管理等,這些工具通常被打包在一起,統一發布和安裝。
例如Visual Studio、Dev C++、Xcode、Visual C++6.0、Code:Blocks、C-Free等,它們統稱為IDE(Integrated Development Environment,集成開發環境)。
1、Windows:
Windows下的IDE比較多,我推薦使用Visual Studio或者Dev C++;如果你的操作系統是XP或者Win7,你也可以使用C-Free。另外,國內很多高校還在使用Visual C++6.0,把它作為C語言教學的工具。
①Visual C++6.0(簡稱VC6.0)是微軟開發的一款經典的IDE,很多高校都以VC6.0為教學工具來講解C和C++。但VC6.0是1998年的產品,很古老了,在Win7、Win8、Win10下會有各種各樣的兼容性問題,甚至根本不能運行,所以不推薦使用。
②Visual Studio(簡稱VS)是Visual C++6.0的升級版,增加了很多新特性,支持了更多的語言,是Windows下的標准IDE,實際開發中大家也都在使用。不過VS有點龐大,安裝包有2~3G,下載不便,而且會安裝很多暫時用不到的工具,安裝時間在半個小時左右。
為了適應最新的Windows操作系統,微軟每隔一段時間(一般是一兩年)就會對VS進行升級。VS的不同版本以發布年份命名,例如VS2010是微軟於2010年發布的,VS2017是微軟於2017年發布的。
③Dev C++是一款免費開源的C/C++IDE,內嵌GCC編譯器(GCC編譯器的Windows移植版),是NOI、NOIP等比賽的指定工具。Dev C++的優點是體積小(只有幾十兆)、安裝卸載方便、學習成本低,缺點是調試功能弱。
NOI是National Olympiad in Informatics的縮寫,譯為「全國青少年信息學奧林匹克競賽」;NOIP是National Olympiad in informatics in Provinces的縮寫,譯為「全國青少年信息學奧林匹克聯賽」。
NOI、NOIP都是奧林匹克競賽的一種,參加者多為高中生,獲獎者將被保送到名牌大學或者得到高考加分資格。
④C-Free是一款國產的Windows下的C/C++IDE,最新版本是5.0,整個軟體才14M,非常輕巧,安裝也簡單,界面也比Dev C++漂亮。C-Free的缺點也是調試功能弱。
可惜的是,C-Free已經多年不更新了,組件都老了,只能在XP、Win7下運行,在Win8、Win10下可能會存在兼容性問題,所以我才重點推薦Dev C++,否則我會更加傾向於C-Free。
本教程的目錄中只列出了VS2010、VS2015、Dev C++的安裝和使用,希望嘗試C-Free和VC6.0讀者請猛擊《在C-Free下運行C語言程序》《在VC6.0下運行C語言程序》。
2、Linux:
在Linux下使用GCC(GNU Compiler Collection,GNU編譯器套件)。GCC是GUN組織開發的自由軟體,除了支持C,還支持C++、Java、Objective-C等,它是Linux平台編譯器的事實標准。
3、Mac OS X:
在Mac OS X下使用Xcode。Xcode是由Apple官方開發的IDE,支持C、C++、Objective-C、Swift等,可以用來開發Mac OS X和iOS上的應用程序。
Xcode最初使用GCC作為編譯器,後來由於GCC的不配合,改用LLVM/Clang。雖然C語言的IDE眾多,但是C語言的絕大部分內容在各個IDE下都是通用的。
⑵ C語言編程需要在什麼環境下運行
C語言編程需要在C編譯器環境下運行。C編譯器的作用是將C語言源代碼轉換成可執行代碼。在Windows操作系統中,開發者可以利用VisualStudio或Code::Blocks等集成開發環境(IDE)來編寫C語言程序,並進行編譯。這些IDE不僅提供了文本編輯功能,還包含了編譯器和調試器等工具,使得編程過程更加高效和便捷。
對於Linux系統用戶來說,GCC(GNU Compiler Collection)是常用的C語言編譯器。GCC不僅能夠編譯C語言代碼,還支持C++、Java等多種編程語言,具有廣泛的兼容性和靈活性。用戶可以在Linux系統中安裝GCC編譯器,之後就可以利用它來編譯C語言程序。
無論是Windows還是Linux系統,用戶都需要先安裝相應的C編譯器,然後在編譯器提供的開發環境中進行C語言編程和編譯。這樣的設置能夠確保程序的正確性和穩定性,同時也有利於後續的調試和優化工作。
開發環境的配置對於C語言編程來說至關重要。安裝了C編譯器後,用戶可以在IDE中創建項目,編寫源代碼,並利用編譯器進行編譯。在編譯過程中,如果代碼中存在錯誤,編譯器會生成錯誤報告,幫助開發者定位問題。此外,IDE中的調試器可以用來執行和調試程序,進一步優化代碼性能。
總結起來,C語言編程的運行環境主要包括C編譯器和集成開發環境。用戶可以選擇適合自己的操作系統和開發工具,安裝相應的編譯器,並在開發環境中編寫和編譯C語言程序。通過這種方式,開發者可以高效地完成C語言編程任務,確保程序的正確性和可靠性。
⑶ C++之IDE和編譯器的區別
C++的IDE與編譯器的區別:
IDE(Integrated Development Environment)指整合開發環境,也就是用於編輯程式碼、開發程式的應用程式,一般包含程式碼編輯器與編譯器等。C++的IDE有Visual C++6.0、GUIDE等;
編譯器(Compiler),則是用於將高階程式語言程式碼翻譯成目的碼(如機器語言)的程式。C++的編譯器是g++。
上面說了,IDE一般包含編譯器,也就是說編譯器一般屬於IDE的一部分。在IDE中可編輯、編譯程式碼,而編譯器只能編譯程式碼。
ide包括編譯器
你描述的IDE是自帶了編譯器的IDE。
仍有一些IDE只有開發環境,編譯器需要另外指定,比如codeblocks,這個IDE可以使用g或者vs編譯器或者別的。
還有個例子就是eclipse,本身並不帶編譯器,需要額外指定。
很明顯是Visual c++好,Visual c++功能比Turbo c 2.0強大的多. 兩個開發環境的針對性不同,Turbo c 2.0主要針對C進行開發,而Visual c++主要針對C++,但我覺得Visual c++開發C++和C都是很好的工具. Turbo c 2.0比較適合剛剛接觸C語言的人來使用,Visual c++可以說是從事商業開發的有效工具
C++的時編譯成機器程式碼,java的時位元組碼,就是虛擬指令,只能在java虛擬上執行。
c++的設計者說過,c++的設計目標是保留c語言的長處如:系統程式設計特性,執行快速快等,再新增上面向物件特性。
語言的特性決定編譯器的特點。核心的區別也就上面一句話,具體的差別那得幾本書來說明。c編譯器通常只編譯c檔案,c++編譯器可以同時編譯c和c++檔案。
包含關系。
IDE(Integrated Development Environment)指整合開發環境,可以用來編輯程式碼,包含有編譯器。一般現在最常用的就是VC++和Visual Studio了。
編譯器(Compiler),則是用於將高階程式語言程式碼翻譯成目的碼(如機器語言)的程式。C++一般是g++
1. IDE與硬體平台有關。不同IDE攜帶的編譯器不同。
2. 當然有關。不是半導體廠家提供的,而是編譯器開發廠商提供的,也有很多開源的編譯器。
3. 有關系。目前最常見的編譯器仍然只支援C/C++,宴殲C#的編譯器較少而且據說仍不完善。至於Java……哈哈,這種二道販子還需要勞煩編譯器?
4. 可以整合。具體的你需要查閱相應IDE的手冊,看看能夠整合晌逗沖/新增哪些編譯器。
5. 關心到架構就可以。廠商自己擴充套件的東西多半就是些對映,你看廠商的外設就行;而且很多廠商都提供了易於開發的庫(當然他們的庫也都是夠爛的,用熟了以後就可以扔掉)。
6. 是否用作業系統不影響編譯器,整體而言也不影響IDE;當然IDE中如果能夠新增針對作業系統元件的原生支援(重點是除錯方面),用起來就更方便。
優化方式理論上跟編譯器和硬體都有關聯。程式碼級別的優化,要看所使用的編譯器實現,Xcode用的是clang,VS用的是windows自己的編譯器。。。
匯編級別(指令級別)的優化,要根據硬體對應的指令集實現,指令集根據CPU型別的不同而不同。。。
g++編譯時實際上是呼叫g進行編譯;
g不能自動連結庫檔案,一般用g++來連結庫檔案,非要用g的話,一般使用g -lstdc++命令;
extern 「c」對於g和g++沒有區別;
實際使用時只需安裝g和g++中的一個就行了,如果使用g,編譯直接用g就行了,連結要加上-lstdc++引數;如果使用g++,編譯時實際還是呼叫g,連結直接使用g++即可;
關於包含庫檔案標頭檔案的說明:以gtd庫檔案為例,庫檔案一般是libgtd.so格式的檔案,如果是libgtd-***.so或者其他格式,可以通過軟連結命令轉化成libgtd.so格式,ln
-s libgtd-***.so
libgtd.so。一般庫檔案如果是放在/lib,/usr/lib,/usr/local/lib目錄下,則無需額外處理,編譯連結時-lgtd會自動找到對應檔案不會報錯,但是如果不在對應目錄,則需要加上-L
/所在目錄
-lgtd才能找到對應的庫檔案。標頭檔案一般是採用原始檔中用#include命令包含,而不是採用-include引數包含,標頭檔案如果放在/usr/include目錄下則會自動找到不會報錯,否則編譯連結時需要使用-I
/所在目錄才能正確找到。
編譯連結命令示例:
g++ test.cpp -o test.txt -L /mytest/lib -lgtd -I /mytest/include