導航:首頁 > 源碼編譯 > gcc如何編譯

gcc如何編譯

發布時間:2022-01-12 05:05:45

❶ 「linux」怎麼編譯c的源程序的「gcc」編譯命令是什麼

格式 gcc [option] [sourcefilename]

介紹一些常用的選項:最簡單的是:gcc hello.c
默認的情況下將生成a.out的可執行性文件,你只需要在終端上輸入./a.out就可以看到執行的結果.
如果你想指定生成目標文件的名字那麼你可以加上 -o選項,命令如下:
gcc -o hello hello.c


命令如下:
gcc -c hello hello.c

❷ gcc編譯流程

gcc編譯分為四部;

第一步,預編譯,將程序中的宏定義等預編譯;

第二步,編譯,將*.h,*.c等文件編譯成為*.o文件;

第三步,匯編;

第四步,連接,將*.o文件連接庫,生成可執行文件!

❸ 如何配置gcc編譯環境

首先准備好arm-linux-gcc的包,比如說是arm-linux-gcc-fh.tar.gz。
首先是解壓縮,路徑可以隨便放,最好放在/opt這個目錄下面。
使用如下命令:
tar xvzf arm-linux-gcc-fh.tar.gz(空格)C(空格/(注意這之間的空格)。
然後就解壓縮好了,接下來就是要修改一下配置文件了。
切換到root許可權,輸入如下命令:
vi /etc/bash.bashrc
在最後面一行加入如下語句:
export PATH=$PATH:/opt/***(***表示你的arm-linux-gcc這個可執行文件的路徑);
最後,重啟一下配置文件,使用如下命令:
source /etc/bash.bashrc,

❹ 的程序在Gcc下怎麼編譯

關於 C 語言源程序,最簡單的使用方式就是:gcc my_program.c <cr>,如果沒有程序錯誤的話,gcc 編譯器會生成一個預設的可執行程序:a.out 。
常用的有:gcc -o my_runfile my_program.c <cr>
使用 my_runfile 運行文件名代替預設的可執行程序 a.out
gcc -c my_program.c <cr>
只編譯,不連接。生成一個 my_program.o 的文件。
如果還需要更多的選項,那就需要查看 gcc 的編譯選項了。當然了,如果程序的規模再要大的話,那就需要編寫 makefile 文件,以及 make 工具對 makefile 進行管理了。

❺ 用 gcc 如何編譯多個 c 文件

已經cd到ds目錄,用如下命令
gcc -I./a -I./b a.c b.c main.c -o main

❻ 如何編譯GCC 4.3.2

vi $HOME.profile
[color=Blue]PATH=/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/ucb
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/sfw/lib
export PATH LD_LIBRARY_PATH
alias ll="df -hFufs"
alias m="gmake && gmake install"
PS1="\u@\H# "[/color]
#注意: 把/usr/local的path和LD_LIBRARY_PATH提前到/usr/sfw/lib下面,因為solaris自帶的一些命令不是gnu的,在編譯過程中可能會報錯,ld/ar等命令都需要額外安裝!下面的步驟會有敘述!

編譯binutils-2.18
cd /tmp; gtar zxvf binutils-2.18.tar.gz
cd binutils-2.18
./configure && m

cd /tmp; gtar zxvf gcc-4.3.2.tar.gz
cd /tmp/ && bzcat zxvf gmp-4.2.1.tar.bz2 && mv gmp-4.2.1 gmp && gtar xvf - && ./configure && m
cd /tmp/ && gtar zxvf mpfr-2.3.2.tar.gz && mv mpfr-2.3.2 mpfr && ./configure -with-gmp-build=/tmp/gmp && m

cd /tmp/gcc-4.3.2 && bzcat zxvf gmp-4.2.1.tar.bz2 && gtar xvf - && mv gmp-4.2.1 gmp
cd /tmp/gcc-4.3.2 && gtar zxvf mpfr-2.3.2.tar.gz && mv mpfr-2.3.2 mpfr

開始編譯gcc了
cd /tmp/gcc-4.3.2
./configure --prefix=/tmp/gcc --enable-languages=c,c++ --with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld --with-ld=/usr/local/bin/ld LD=/usr/local/bin/ld AS=/usr/local/bin/as AR=/usr/local/bin/ar NM=/usr/local/bin/nm RANLIB=/usr/local/bin/ranlib STRIP=/usr/local/bin/strip OBJCOPY=/usr/local/bin/obj OBJDUMP=/usr/local/bin/objmp

❼ 如何用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就可以看到程
序的輸出結果了

❽ 怎樣用gcc編譯程序代碼

假定你的源文件是
main.c,作用是列印hello
world.
gcc
-o
app
main.c
就會編譯出可執行文件
app,
然後
./app
就會執行了app了。

❾ 在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!

閱讀全文

與gcc如何編譯相關的資料

熱點內容
pdf調字體大小 瀏覽:804
myeclipse命令行 瀏覽:126
小謝解壓 瀏覽:139
h264編碼器源碼 瀏覽:664
有什麼辦法翻錄加密視頻 瀏覽:666
java數據結構與演算法面試題 瀏覽:977
解壓不了是什麼意思 瀏覽:359
紐西蘭編程師年薪 瀏覽:321
程序員為什麼大多生閨女 瀏覽:51
c編程用英文還是中文 瀏覽:723
一點都不解壓的游戲 瀏覽:203
解壓為什麼不能用中文文件夾 瀏覽:615
伺服器如何解除備份 瀏覽:144
安卓手機為什麼用一年就變卡 瀏覽:11
如何用風變編程自動回復 瀏覽:512
安卓閱讀幣怎麼樣 瀏覽:437
京東app怎麼切號 瀏覽:583
進入傳奇伺服器後如何修改 瀏覽:42
m0單片機的cycle怎麼知道 瀏覽:806
linux命令太長 瀏覽:782