1.進入字元介面
2.建立檔案夾用於存放源檔案
mkdir helloworld //建立檔案夾命令
cd helloworld //進入建立的檔案夾,這裡應該說目錄比較好,windows用習慣了
vim main.c //開啟vim並建立main.c檔案
//按 i 鍵進入編輯狀態,以下是程式
#include
int main()
{
printf("Hello world!/n");
return 0;
}
按Esc進入命令模式,按 ZZ 儲存退出
gcc main.c //編譯
./a.out //運行,預設情況產生a.out可執行檔
如何在GCC++中編譯一個C++程式並運行 收藏
GCC 能夠編譯三種語言:C、C++ 和 Object C(C 語言的一種物件導向擴充)。利用 gcc 命令可同時編譯並串連 C 和 C++ 來源程式。
#DEMO#: hello.c
如果你有兩個或少數幾個 C 源檔案,也可以方便地利用 GCC 編譯、串連並產生可執行檔。例如,假設你有兩個源檔案 main.c 和 factorial.c 兩個源檔案,現在要編譯產生一個計算階乘的程式。
-----------------------
清單 factorial.c
-----------------------
#include <stdio.h>
#include <stdlib.h>
int factorial (int n)
{
if (n <= 1)
return 1;
else
return factorial (n - 1) * n;
}
-----------------------
-----------------------
清單 main.c
-----------------------
#include <stdio.h>
#include <stdlib.h>
int factorial (int n);
int main (int argc, char **argv)
{
int n;
if (argc < 2) {
printf ("Usage: %s n/n", argv [0]);
return -1;
}
else {
n = atoi (argv[1]);
printf ("Factorial of %d is %d./n", n, factorial (n));
}
return 0;
}
-----------------------
利用如下的命令可編譯產生可執行檔,並執行程式:
$ gcc -o factorial main.c factorial.c
$ ./factorial 5
Factorial of 5 is 120.
GCC 可同時用來編譯 C 程式和 C++ 程式。一般來說,C 編譯器通過源檔案的尾碼名來判斷是 C 程式還是 C++ 程式。在 Linux 中,C 源檔案的尾碼名為 .c,而 C++ 源檔案的尾碼名為 .C 或 .cpp。
但是,gcc 命令只能編譯 C++ 源檔案,而不能自動和 C++ 程式使用的庫串連。因此,通常使用 g++ 命令來完成 C++ 程式的編譯和串連,該程式會自動調用 gcc 實現編譯。假設我們有一個如下的 C++ 源檔案(hello.C):
#include <iostream.h>
void main (void)
{
cout << "Hello, world!" << endl;
}
則可以如下調用 g++ 命令編譯、串連並產生可執行檔:
$ g++ -o hello hello.C
$ ./hello
Hello, world!
1.7.2 gcc/egcs 的主要選項
表 1-3 gcc 命令的常用選項
選項 解釋
-ansi 只支援 ANSI 標準的 C 文法。這一選項將禁止 GNU C 的某些特色,
例如 asm 或 typeof 關鍵詞。
-c 只編譯並產生目標檔案。
-DMACRO 以字串“1”定義 MACRO 宏。
-DMACRO=DEFN 以字串“DEFN”定義 MACRO 宏。
-E 只運行 C 先行編譯器。
-g 產生調試資訊。GNU 調試器可利用該資訊。
-IDIRECTORY 指定額外的標頭檔搜尋路徑DIRECTORY。
-LDIRECTORY 指定額外的函數庫搜尋路徑DIRECTORY。
-lLIBRARY 串連時搜尋指定的函數庫LIBRARY。
-m486 針對 486 進行代碼最佳化。
-o FILE 產生指定的輸出檔案。用在產生可執行檔時。
-O0 不進行最佳化處理。
-O 或 -O1 最佳化產生代碼。
-O2 進一步最佳化。
-O3 比 -O2 更進一步最佳化,包括 inline 函數。
-shared 產生共用目標檔案。通常用在建立共用庫時。
-static 禁止使用共用串連。
-UMACRO 取消對 MACRO 宏的定義。
-w 不產生任何警告資訊。
-Wall 產生所有警告資訊。