假設源程序文件名為test.c。
1. 無選項編譯鏈接
用法:#gcc test.c
作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件。這里未指定輸出文件,默認輸出為a.out。編譯成功後可以看到生成了一個a.out的文件。在命令行輸入./a.out 執行程序。./表示在當前目錄,a.out為可執行程序文件名。
2. 選項 -o
用法:#gcc test.c -o test
作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件test。-o選項用來指定輸出文件的文件名。輸入./test執行程序。
假設文件為helloworld.cpp
$ g++ helloworld.cpp
編譯器 g++ 通過檢查命令行中指定的文件的後綴名可識別其為 C++ 源代碼文件。編譯器默認的動作:編譯源代碼文件生成對象文件(object
file),鏈接對象文件和 libstdc++
庫中的函數得到可執行程序。然後刪除對象文件。由於命令行中未指定可執行程序的文件名,編譯器採用默認的 a.out。程序可以這樣來運行:
$ ./a.out
hello, world
更普遍的做法是通過 -o 選項指定可執行程序的文件名。下面的命令將產生名為 helloworld 的可執行文件:
$ g++ helloworld.cpp -o helloworld
在命令行中輸入程序名可使之運行:
$ ./helloworld
如果沒有配置好路徑則用如下
一個.java文件的編譯、運行示例如下:
# javac -classpath ./:/home/username/bin/ThirdParty.jar Hello.java
#java -classpath ./:/home/username/bin/ThirdParty.jar Hello
否則
javac Hello.java
java Hello
hello, world
㈡ 如何在linux下編譯,執行c程序
1.編譯單個源文件
[例如]在屏幕上列印"Hello,Linux."
[源代碼]#include<stdio.h
#include<stdlib.h
int main(int argc,char **argv){printf("Hello,Linux.\n");exit(0);}將源文件保存為hello.c,開始進行編譯
$gcc -o hello hello.c
編譯成功完成後,在當前路徑下,生成一個名為hello的文件,然後執行
$./hello在屏幕上,你將會看到列印結果:Hello,Linux.
說明:在默認情況下,編譯成功完成後,會在當前路徑下,生成一個名為a.out的文件,然後執行$./a.out便可列印結果,但通常可以通過選項-o來指定自己的可執行程序名稱;
2.編譯多個源文件
3.使用外部函數庫
4.使用共享函數庫和靜態函數庫5.gcc選項詳細描述
㈢ linux編譯c程序步驟
1.進入桌面Temp文件夾
2.右鍵新建空白文件
3.將文件命名為hello.c
4.進入hello.c,開始編寫代碼(默認gedit為編輯器)
5.編寫代碼,保存退出
㈣ Linux下gcc如何編譯自己目錄下的C程序
$cd ~
$cd C_code
$gcc xxxx.c -o xxxxxxxx
其中,~就是 /home/a564034199
xxxx就是你的源文件的名字
xxxxxxxx就是要編譯的文件
㈤ 在linux中,怎麼用gcc編譯文件
在終端中輸入 gcc 文件名 -o 目標文件名
然後 ./目標文件名 就行了,沒有目標文件名,自動存為 a
執行 ./a 就行了。
在使用Gcc編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,其中多數參數我們可能根本就用不到,這里只介紹其中最基本、最常用的參數。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
-c,只編譯,不連接成為可執行文件,編譯器只是由輸入的.c等源代碼文件生成.o為後綴的目標文件,通常用於編譯不包含主程序的子程序文件。
-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。
-g,產生符號調試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調試,我們就必須加入這個選項。
-O,對程序進行優化編譯、連接,採用這個選項,整個源代碼會在編譯、連接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、連接的速度就相應地要慢一些。
-O2,比-O更好的優化編譯、連接,當然整個編譯、連接過程會更慢。
-Idirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預編譯過程中使用的參數。C程序中的頭文件包含兩種情況∶
A)#include <myinc.h>
B)#include 「myinc.h」
其中,A類使用尖括弧(< >),B類使用雙引號(「 」)。對於A類,預處理程序cpp在系統預設包含文件目錄(如/usr/include)中搜尋相應的文件,而B類,預處理程序在目標文件的文件夾內搜索相應文件。
GCC執行過程示例
示例代碼 a.c:
#include <stdio.h>
int main()
{
printf("hello\n");
}
預編譯過程:
這個過程處理宏定義和include,並做語法檢查。
可以看到預編譯後,代碼從5行擴展到了910行。
gcc -E a.c -o a.i
cat a.c | wc -l
5
cat a.i | wc -l
910
編譯過程:
這個階段,生成匯編代碼。
gcc -S a.i -o a.s
cat a.s | wc -l
59
匯編過程:
這個階段,生成目標代碼。
此過程生成ELF格式的目標代碼。
gcc -c a.s -o a.o
file a.o
a.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
鏈接過程:
鏈接過程。生成可執行代碼。鏈接分為兩種,一種是靜態鏈接,另外一種是動態鏈接。使用靜態鏈接的好處是,依賴的動態鏈接庫較少,對動態鏈接庫的版本不會很敏感,具有較好的兼容性;缺點是生成的程序比較大。使用動態鏈接的好處是,生成的程序比較小,佔用較少的內存。
gcc a.o -o a
程序運行:
./a
hello
編輯本段
GCC編譯簡單例子
編寫如下代碼:
#include <stdio.h>
int main()
{
printf("hello,world!\n");
}
執行情況如下:
gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s
gcc -c hello.s -o hello.o
gcc hello.c -o hello
./hello
hello,world!
㈥ linux中如何編譯c文件
用gcc編譯器編譯c文件,先下載安裝一個gcc編譯器(如果已有則忽略),然後在命令框輸入
gcc (文件名).c -o (可執行文件名).o
㈦ 如何用GCC在linux下編譯C語言程序
在Linux下面,如果要編譯一個C語言源程序,我們要使用GNU的gcc編譯器,假設我們有下面一個非常簡單的源程序(hello.c):
int main(int argc,char **argv)
{
printf("Hello Linux
");
}
要編譯這個程序,我們只要在命令行下執行:
gcc -o hello hello.c
gcc 編譯器就會為我們生成一個hello的可執行文件.執行./hello就可以看到程
序的輸出結果了
㈧ Linux下如何編譯並運行C程序
1.編譯單個源文件 [例如]在屏幕上列印"Hello,Linux." [源代碼]#include<stdio.h #include<stdlib.h int main(int argc,char **argv){printf("Hello,Linux.\n");exit(0);}將源文件保存為hello.c,開始進行編譯 $gcc -o hello hello.c 編譯成功完成後,在當前路徑下,生成一個名為hello的文件,然後執行 $./hello在屏幕上,你將會看到列印結果:Hello,Linux. 說明:在默認情況下,編譯成功完成後,會在當前路徑下,生成一個名為a.out的文件,然後執行$./a.out便可列印結果,但通常可以通過選項-o來指定自己的可執行程序名稱; 2.編譯多個源文件 3.使用外部函數庫 4.使用共享函數庫和靜態函數庫5.gcc選項詳細描述
㈨ Linux編譯C語言,源程序文件放在什麼路徑
改名:mv hello hello.c
編譯:首先cd到你源文件的那個目錄下,這樣省去了指定絕對路徑的麻煩,比如cd到桌面,然後:gcc hello.c -o hello
運行:./hello
㈩ 如何在linux下編譯/運行C/C++程序
gcc first.C -o first
說明:
1>編譯當前目錄下、名字叫做first.C的c源文件;
2>在當前目錄下、生成名字叫first(這個名字可以自己隨便寫、符合linux命名規則就行)的可執行程序;
關於運行:
用ls -l 命令,可以看到當前目錄下有一個綠色的文件、名字叫first,就是剛剛編譯得到的文件;
使用命令「./first」既可運行(無雙引號、雙引號是用來說明的);
不懂再問~