本文進行對C++編譯環境說明介紹,但是首先在編譯前,首先遇到的就是環境問題,這個問題大大的影響了編程人員和技術人員的工作效率,那麼本文給大家講述一下令人頭疼的C++編譯問題。
源程序作為解釋器輸入,解釋器可能會把程序轉換為內部的合適的形式,以取得更大的運行速度。解釋器的工作更像人類自身的工作,它處理字符串,並賦於字符串以意義,常見的解釋程序都是腳本語言,如PHP、Perl、ASP和bash等等。
編譯程序
什麼是編譯程序?編譯程序和解釋程序一樣,是程序運行的一種方式,但卻又與解釋程序是不同的運行方式。解釋程序是邊解釋邊執行,而編譯程序是編譯之後多次執行。比喻來說,我們像一條魚,解釋器會找來一條魚給你,而編譯器卻會把一個網給你,要魚的話自己捉去。
源程序是編譯器的輸入,編譯器把源程序經過分析與處理最終轉換成一個可直接執行的二進制程序。二進制程序是機器可以直接理解並執行的指令與數據集,此時我們只需要簡單把程序裝載內存,並把CPU的控制交給它就可以了。
一般來解釋程序會比編譯程序慢許多,因為解釋需要多次進行,而編譯卻只是一次進行,所以會省下許多時間。C++和C語言都典型的編譯程序,隨著計算機硬件的發展,現代的解釋型程序越來越成功和強大,並且已經形成一個很強大的競爭。
C++編譯環境
C++是一種編譯程序,那麼C++的源程序到C++二進制程序的轉換過程是由哪個工具來完成的呢?這個工具就是C++編譯器,正如上面據說的,C++編譯器讀取源程序,在經過分析與處理之後生成可運行的二進制程序。
C++編譯器及相關工具構成C++編譯環境,C++編譯環境可能還存在其它的工具,比如預處理器、編輯器、設計器等等。事實上存在非常多的編譯環境,這些編譯環境各不同,有的非常先進,有的可能注重易用性。
本手冊自始至終都使用GNU Compiler CollectionGCC)來完成我們工作,GCC是一組編譯器集合,它不僅有C++編譯器g++,還有其它的編譯器或解釋器。它是自由和開放,全世界的人都應該使用它,所以也就使用它了。
除了g++之外,還存在intel C++ compiler、IBM C++ compiler,當然還最臭名照著了Microsoft Visual C++。它們三個都商業軟件,intel公司關注自身平台,所以它的編譯器可能只能運行在自身平台之上,當然這種關注使得它在自身平台有許多的優勢,比如編譯出來的程序更快等。C++的最初創始人Bjarne Stroustrup維護了一個C++編譯器列表,大家可以過去看看。
在示例中,每個程序都非常簡單,在Linux中使用g++來完成編譯與測試。關於g++更多的內容我們可能在以後的章節有所涉及,但是不會有大量篇幅,因為在這裡講述的是C++,而不是g++。如果實在無法離開Windows,這裡有一個替代方案。
可以下載並安裝Code::Blocks,它是一個跨平台的IDE環境,此時你可以不得不先去熟悉這個IDE環境要編譯我們上一節寫作的“hello_world.cpp”程序,其實很簡單,只要我們在命令行中使用,
就可以了。在運行上述命令之後,將生成一個叫做“hello”的可執行程序,為了要運行它,我們需要在命令行中使用: 這個命令就是運行剛才生成的程序的命令,注意在“hello”之前的“./”,這表示是當前目錄下的“hello”。 大家可以已經注意到了,這裡我會使用大量命令行相關的內容,如果你對這個不熟悉,你應該先去熟悉也命令行相關的內容。