假設有2個名爲abc.c和xyz.c的程序。現在我們想要一次處理2個可執行文件。所以我們更改./a.out的名稱使用在c編程中使用gcc命令中的-g和-o選項
gcc -g abc.c -o abc
gcc -g xyz.c -o xyz
即使gcc -o abc abc.c
的作品。 上述命令中的-g
和-o
指定或描述了什麼? 在重命名./a.out文件的命令中,-g
和-o
的重要性如何。 在此先感謝。
假設有2個名爲abc.c和xyz.c的程序。現在我們想要一次處理2個可執行文件。所以我們更改./a.out的名稱使用在c編程中使用gcc命令中的-g和-o選項
gcc -g abc.c -o abc
gcc -g xyz.c -o xyz
即使gcc -o abc abc.c
的作品。 上述命令中的-g
和-o
指定或描述了什麼? 在重命名./a.out文件的命令中,-g
和-o
的重要性如何。 在此先感謝。
-g
意味着離開輸出文件的調試信息,這是無關的重命名。
-o
表示將結果放入指定文件而不是默認文件名(對象文件爲abc.o
,對於鏈接的可執行文件爲a.out
)。
謝謝我明白了爲什麼他們現在使用。 –
從https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html:
-g Produce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF). GDB can work with this debugging information.
-o file Place output in file file. This applies to whatever sort of output is being produced, whether it be an executable file, an object file, an assembler file or preprocessed C code.
感謝您的幫助 –
我明白它是如何使用的 –
-g一旦使用調試器(如gdb和lldb)開始變得有用。當您連接到正在運行的程序並一次前進一行時,打印/更改狀態。
如果我們在編譯時指定-g選項,調試符號將會在輸出文件中可用,當您嘗試使用GDB進行調試時這將非常有用。
如果我們不指定-o選項,輸出將被放置在默認的a.out文件中。因此,如果我們運行
gcc a.c - output will be in a.out
gcc b.c - output is a.out which is replacing old a.out file
如果你想輸出不被a.out文件,你可以在編譯
gcc abc.c -o a
-o和-g選項是不相關的給-o選項。
'gcc --help'會告訴你...或者'man gcc'。雖然我們很樂意提供幫助,但我們不是爲了幫助您懶惰,或者是替代檢查文檔。 –
我試過了,但沒有詳細說明。它表示它們會自動傳遞到各個子流程。 –
'gcc --help'是相當無益的。它非常專注於將gcc作爲「編譯器集合」的驅動程序,其中每個編譯器都由幾個子元素組成,而不是針對新用戶提供通用的C/C++編譯器選項。這不是事實上的錯誤,而是針對錯誤的層面。 – librik