Linux下簡單的c c 程式設計

2021-08-14 08:40:20 字數 2869 閱讀 8540

環境

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 ...