導航:首頁 > 程序命令 > gcc命令編譯加o參數的區別

gcc命令編譯加o參數的區別

發布時間:2022-05-31 03:48:49

A. gcc -c ch01.c -o main與gcc ch01.c -o main 有什麼區別 為什麼前者編譯出來的執行文件不能運行

加-c是編譯不鏈接,生成的是目標文件,-o和-c一起用就是把這目標文件改名輸出成main而已。
單加-o就是編譯且鏈接輸出成執行文件。

B. gcc -o main main.cpp 和 gcc main.cpp -o main 有什麼區別啊

依賴於g++對命令行參數的解析方式。-o main是選項,第1種是標准用法,與ls -l <file> 和 ls <file> -l是一樣的意思。

這沒有語法角度,-o main main.cpp或者 main.cpp -o main都是參數,直接影響g++程序中argc和argv參數。比如g++ -o main main.cpp,最終傳到g++的main函數中 main(int argc, char **argv)的參數是:argc:4, argv: {"g++", "-o", "main" "main.cpp"},argv是一個字元串數組,第個元素表示一個命令行參數,argc表示命令行參數的個數。g++去解析這些命令行參數,如果想一探究竟,直接查閱源碼就OK。
不建議使用後一種。使用man g++可以查看標准使用方式。

C. gcc怎麼編譯.o

gcc中-c和-o是編譯時可選的參數
-加-c, (compile)只編譯生成中間同名目標文件,不鏈接
-加-o,(output)指定輸出文件名,該文件為可執行文件,不加-o會默認生成a.out
舉例:
gcc -c hello.c 編譯生成hello.o文件
gcc -o hello hello.c 生成可執行文件hello

D. (linux)gcc進行優化編譯的參數是什麼

將file.c文件編譯產生可執行文件myprog(-o選項),並且在編譯的時候,生成調試信息(-g信息)。讓gdb調試器可以調試該程序。
gcc是編譯器程序名字
-o是可執行文件名字輸出參數
-g是插入調試信息參數
當然是調試可執行文件myprog

E. gcc. g++ 編譯後生成的.O文件有何不同

從總體來看,沒什麼不同,都是
文件頭、段表、段內容這樣的一個格式。

往內容來看,兩者有區別的,g++是把文件當C++,gcc是把文件當作C。首先是符號生成規則(name mangling)不一樣,還有就是連接的庫也不一樣。

F. gcc -o是什麼意思

gcc在windows下有很出名的,從Linux下轉過來的(gcc原來是linux下的) 叫MinGW
MinGW是指只用自由軟體來生成純粹的Win32可執行文件的編譯環境。
-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。
一般語法:
gcc filename.c -o filename
上面的意思是如果你不打 -o filename 那麼默認就是輸出filemame.out.這個-o就是用來控制輸出文件的。

G. linux 怎麼編譯c的源程序的gcc,編譯命令是什麼

在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。

先將源文件編譯成目標文件:gcc - c hello.c

生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o

如:

int main(int argc,char **argv)

{

printf("Hello Linux ");

}

(7)gcc命令編譯加o參數的區別擴展閱讀:

在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。

GCC最基本的用法是∶gcc [options] [filenames]

其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。

網路_gcc

H. linux下用gcc編譯出的可執行文件和.o的編譯文件有什麼區別

.o 是可重定位目標程序, 雖然打包了機器語言指令,但它還需要和其它的庫(比如你用的printf())做鏈接,最終生成可執行目標文件,這樣才可能被載入到內存中由系統執行.
你的程序里用到printf(),但你自己並沒有實現它,實現在系統的庫文件中,因此可鏈接後才能用嘛.

I. gcc命令求詳解!!!!

1. 把 foo.c 編譯為目標文件 foo.o
2. 把 main.c 編譯為目標文件 main.o
3. 把 目標文件main.o和 foo.o 編譯為可執行文件 simple

make 會 分析 makefile
發現 第一個文件依賴關系all:main.o foo.o
是 gcc -o simple main.o foo.o
即 simplie是由 main.o foo.o連接在一起得到的
接著他會往下找 main.o 和foo.o 各自的依賴關系
發現
main.o:main.c
gcc -c main.c -o main.o
即main.o是 由 main.c 編譯而來的
接著又發現
foo.o:foo.c
gcc -c foo.c -ofoo.o:foo.c
gcc -c foo.c -o foo.o
即foo.o 是 由foo.c 編譯而來的
所以
編譯順序 如開頭所說的那樣

閱讀全文

與gcc命令編譯加o參數的區別相關的資料

熱點內容
php512 瀏覽:566
手機文件夾應用推薦怎麼關 瀏覽:605
伺服器為什麼要分業務口和管理口 瀏覽:682
楊輝三角java演算法 瀏覽:55
cmd編譯錯誤找不到符號 瀏覽:695
linuxip機器名 瀏覽:487
伺服器喇叭和頻道喇叭有什麼區別 瀏覽:31
閑魚排名演算法如何計算 瀏覽:975
linuxtargz解壓命令 瀏覽:741
還完房貸後解壓手續銀行會代辦嗎 瀏覽:811
解壓烹飪樂高 瀏覽:675
元神的伺服器怎麼看 瀏覽:362
stc8單片機串口中斷 瀏覽:954
信號分析pdf 瀏覽:927
暴力刪除命令 瀏覽:803
qt如何編譯加快速度 瀏覽:903
php添加數據sql語句 瀏覽:717
免費的小說app有什麼 瀏覽:405
螺桿壓縮機進氣閥動畫 瀏覽:651
兩台伺服器如何做負載均衡 瀏覽:227