gcc(gnu c compiler)是gnu推出的功能強大、效能優越的多平台編譯器,是gnu的代表作之一。
1.一般用法
[klaus@localhost my_usual]$ clear
[klaus@localhost my_usual]$ ll
total 4
-rw-rw-r--. 1 klaus klaus 99
jan2019:
33 hello.c
[klaus@localhost my_usual]$ cat hello.c
#include
int main(int argc ,char **argv)
[klaus@localhost my_usual]$ gcc hello.c -o hello
[klaus@localhost my_usual]$ ll
total 12
-rwxrwxr-x. 1 klaus klaus 4647
jan2020:
04 hello
-rw-rw-r--. 1 klaus klaus 99
jan2019:
33 hello.c
[klaus@localhost my_usual]$ ./hello
hello world!
[klaus@localhost my_usual]$
2.優化編譯,提高效能[klaus@localhost my_usual]$ gcc -o hello.c -o hello
3.新增檔案路徑
gcc在系統預設的頭檔案目錄(如/usr/include)中搜尋相應的檔案,如果要編譯的標頭檔案不在裡面,可通過-i告訴編譯在哪!
[klaus@localhost my_usual]$ ll
total 8
-rw-rw-r--. 1 klaus klaus 97
jan2020:
20 hello.c
drwxrwxr-x. 2 klaus klaus 4096
jan2020:
21include
[klaus@localhost my_usual]$ cd include/
[klaus@localhost
include]$ ll
total 4
-rw-rw-r--. 1 klaus klaus 18
jan2020:
21 test.h
[klaus@localhost
include]$ cat test.h
#include"stdio.h"
[klaus@localhost
include]$ cd ..
[klaus@localhost my_usual]$ cat hello.c
#include"test.h"
int main(int argc ,char **argv)
[klaus@localhost my_usual]$ gcc hello.c
hello.c:1:
17:error: test.h:
no such file or directory
hello.c:
in function 『main』:
hello.c:4:
warning: incompatible implicit declaration of built-in function 『printf』
[klaus@localhost my_usual]$ gcc hello.c -i ./include/ -o hello
[klaus@localhost my_usual]$ ll
total 16
-rwxrwxr-x. 1 klaus klaus 4647
jan2020:
24 hello
-rw-rw-r--. 1 klaus klaus 97
jan2020:
20 hello.c
drwxrwxr-x. 2 klaus klaus 4096
jan2020:
21include
[klaus@localhost my_usual]$ ./hello
hello world!
4.警告處理
1.不顯示警告
[klaus@localhost my_usual]$ cat hello.c
#include "stdio.h"
int main(int argc ,char **argv)
[klaus@localhost my_usual]$ gcc hello.c -o hello
hello.c: in function 『main』:
hello.c:4: warning: initialization makes integer from pointer without a cast
[klaus@localhost my_usual]$ gcc -w hello.c -o hello
[klaus@localhost my_usual]$ ./hello
hello world!
[klaus@localhost my_usual]$ ll
2.顯示所有警告[klaus@localhost my_usual]$ gcc -wall hello.c -o hello
5.巨集處理選項-d+巨集名稱
[klaus@localhost my_usual]$ cat hello.c
#include "stdio.h"
int main(int argc ,char **argv)
[klaus@localhost my_usual]$ gcc hello.c
[klaus@localhost my_usual]$ ./a.out
[klaus@localhost my_usual]$ gcc -dpre_deal hello.c
[klaus@localhost my_usual]$ ./a.out
hello world!
[klaus@localhost my_usual]$
linux 下gcc的使用
在linux系統中,可執行檔案沒有統一的字尾,系統從檔案的屬性來區分可執行檔案和不可執行檔案。而gcc則通過字尾來區別輸入檔案的類別,下面介紹gcc所遵循的部分約定規則。c為字尾的檔案,c語言源 檔案 a為字尾的檔案,是由目標檔案構成的庫檔案 c,cc或.cxx 為字尾的檔案,是c 源 檔案 h為字...
linux 下gcc的使用
在linux系統中,可執行檔案沒有統一的字尾,系統從檔案的屬性來區分可執行檔案和不可執行檔案。而gcc則通過字尾來區別輸入檔案的類別,下面介紹gcc所遵循的部分約定規則。c為字尾的檔案,c語言源 檔案 a為字尾的檔案,是由目標檔案構成的庫檔案 c,cc或.cxx 為字尾的檔案,是c 源 檔案 h為字...
linux下gcc的使用
假設源程式檔名為test.c。1.無選項編譯鏈結用法 gcc test.c2.選項 o用法 gcc test.c o test3.選項 e用法 gcc e test.c o test.i 作用 將test.c預處理輸出test.i檔案。4.選項 s用法 gcc s test.i 作用 將預處理輸出檔...