2010-08-13 30 views
22

GCC通常被指示通過-o開關輸出到文件。如果沒有提供,它似乎決定一個適當的名稱和輸出。我如何讓GCC將其生成的輸出寫入標準輸出?如何使GCC輸出到標準輸出?

+1

你要去哪裏來管它? – dreamlax 2010-08-13 07:06:12

+1

正如ergosys的回答所暗示的,GCC的一些調用將輸出一個程序集文件,而不是二進制文件。在我的情況下,我想看看它! – 2013-02-15 00:38:42

回答

27
gcc -o /dev/stdout foo.c 

注意/dev/stdout被定義爲符號鏈接:/dev/stdout -> /proc/self/fd/1

+0

現在,Windows有沒有類似的解決方案?或者我將不得不針對跨平臺解決方案進行破解? – 2013-07-27 19:26:16

+0

@凱文,瘋狂猜測,試試'-o CON'?從我完成Windows開始已經有一段時間了。 :/ – sarnold 2013-07-29 21:14:32

+1

** Cygwin **注意:'gcc -o/dev/stdout foo.c'不輸出任何內容,但'gcc -c -o/dev/stdout foo.c' **刪除'/ dev/stdout'!** – Matt 2015-02-19 15:59:50

0

嗯,你要做什麼用二進制對象文件轉儲到標準輸出?無論如何,一些程序接受' - '(單減,無引號)字符作爲替代標準輸出。如果你是在Linux上,你可以做-o /dev/fd/1

+9

很多事情都可以用它來完成。 – Qix 2013-01-08 00:39:34

22

你可以用-O-,例如打印彙編清單:

gcc -S -o- in.c 
+4

需要注意的是,這隻適用於某些輸出。例如'gcc -o- test.c'創建一個名爲'-'的可執行文件。 – 2013-07-27 19:24:56