環境
distributions版本:centos 6.7
linux核心片:2.6.32-573.3.1.el6.i686
一般linux安裝完之後預設就已經安裝了gcc(gnu compiler collection),你可以檢視一下gcc和g++的版本號檢查gcc和g++是否已經安裝。
[luowf@luoweifu ~]$ gcc -v
gcc version 4.4.7
20120313 (red
hat4.4.7-16) (gcc)
[luowf@luoweifu ~]$ g++ -v
gcc version 4.4.7
20120313 (red
hat4.4.7-16) (gcc)
yum groupinstall "development tools"
說到程式,第乙個肯定就是helloworld,那我們也從helloworld開始吧,寫乙個最簡單的hello程式,並編譯和執行。
編寫第乙個程式
[luowf@luoweifu cplusplus]$ pwd
/home/luowf/workspace/cplusplus
//在vim中編寫第乙個helloworld程式
[luowf@luoweifu cplusplus]$ vim helloworld.cpp
1 #include 2
3int main()
4 //編譯程式
[luowf@luoweifu cplusplus]$ g++ helloworld.cpp
[luowf@luoweifu cplusplus]$ ls
a.out helloworld.cpp test1 test2
[luowf@luoweifu cplusplus]$ ./a.out
hello wolrd!
[luowf@luoweifu cplusplus]$
字尾為.c的,gcc把它當作是c程式,而g++當作是c++程式;字尾為.cpp的,兩者都會認為是c++程式。注意,雖然c++是c的超集,但是兩者對語法的要求是有區別的,c++的語法規則更加嚴謹一些。
編譯階段,g++會呼叫gcc,對於c++**,兩者是等價的,但是因為gcc命令不能自動和c++程式使用的庫聯接,所以通常用g++來完成鏈結,為了統一起見,乾脆編譯/鏈結統統用g++了,這就給人一種錯覺,好像cpp程式只能用g++似的。用gcc進行編譯,在選項中加上要鏈結的庫,也可以編譯c++。如上面的helloworld程式我們也可以用以下的命令進行編譯:
[luowf@luoweifu
cplusplus]$ gcc -lstdc++ helloworld.cpp
[luowf@luoweifu
cplusplus]$ ls
a.out helloworld.cpp test1 test2
[luowf@luoweifu
cplusplus]$ ./a.out
hello
wolrd!
[luowf@luoweifu
cplusplus]$
gcc不會定義__cplusplus巨集,而g++會
這個巨集只是標誌著編譯器將會把**按c還是c++語法來解釋,如上所述,如果字尾為.c,並且採用gcc編譯器,則該巨集就是未定義的,否則,就是已定義。
參考文章:
將源**編譯成目標檔案,不進行鏈結
gcc -c helloworld.cpp
在編譯的時候,依據作業系統給予優化執行速度
gcc -o helloworld.cpp -c
將目標檔案鏈結成二進行(可執行)檔案
gcc -o helloworld helloworld.o -lstdc
++
helloworld是可執行檔名,helloworld.o是目標檔名;如果是.c字尾的c原始檔不用加-lstdc++,如果是.cpp字尾的c++原始檔,要加-lstdc++。
(.cpp檔案)gcc -lstdc++ helloworld.cpp
或
(.c檔案)gcc helloworld.c -lm
-l /usr/lib -i /usr/include
說明:
-lm 指的是libm.so或libm.a這個函式庫檔案;
-l 後面接的路徑是剛才上面那個函式庫的搜尋目錄;
-i 後面的是原始碼內的include檔案(也就是包含的math.h標頭檔案)所在的目錄;
helloworld.cpp**如下:
1
#include
2#include 34
int main()
5
將編譯鏈結的結果輸出成某個特定的檔名
gcc -lstdc
++-o helloworld helloworld.cpp
helloworld為輸出的檔名
在編譯的時候,輸出較多的資訊說明
gcc -lstdc
++-o helloworld helloworld.cpp -wall
學習linux下的c c 程式設計
學習linux下的c c 程式設計 1,先有linux環境 搭mingw和cygwin都有點麻煩,最最簡單的辦法還是裝個真正的linux,用虛擬機器也好,在網路上的另一台機器也好。這樣不僅快,而且你有了真正的環境。2.會c c 語言 估計你會的 3.入門階段熟悉gcc命令列,最基本的引數,如,g,w...
Linux下進行C C 程式設計
從網上找到了乙個叫做slax的linux系統,體積只有200多m。它是基於debian的。在u盤裡解壓映象,然後雙擊乙個bat檔案把系統裝在u盤裡了,以後不用的時候直接把整個檔案刪掉就行了。開機時設定u盤優先啟動,就可以使用這個系統了,免去了裝多系統的麻煩。不過,我怎麼也不知道如何開啟及連線wifi...
轉 學習linux下的c c 程式設計
1,先有linux環境 搭mingw和cygwin都有點麻煩,最最簡單的辦法還是裝個真正的linux,用虛擬機器也好,在網路上的另一台機器也好。這樣不僅快,而且你有了真正的環境。2.會c c 語言 估計你會的 3.入門階段熟悉gcc命令列,最基本的引數,如,g,w,o,o,c 建議看man gcc ...