[英]Can't name executable with specified optimization
我必須在編譯在Linux上使用gcc編譯器時編寫的C代碼時關閉優化。 我發現我可以編譯代碼,但是我只能在未指定可執行文件名稱的情況下編譯代碼(默認為a.out)。
所以這工作:
gcc -O0 Problem04b.c
但是我的問題是我必須提交此作業,並且無法提交名為a.out的可執行文件,因為我的講師需要知道這是什么問題。 我意識到我大概可以跑步
cp a.out Problem04b
然后
rm a.out
但是我想知道是否有一種方法可以直接將代碼編譯為可執行文件Problem04b。 我試圖像這樣運行命令:
gcc -O0 Problem04b Problem04b.c
但我沒有運氣。
謝謝你的幫助。
這是-o
標志:
gcc -O0 -o Problem04b Problem04b.c
要指定輸出文件,您需要在gcc
使用-o <filename>
選項。
注意:這里請注意小寫
就您而言,應該是
gcc -O0 -o Problem04b Problem04b.c
供參考:來自gcc手冊
-o文件
將輸出放置在文件文件中。 這適用於所產生的任何類型的輸出,無論是可執行文件,目標文件,匯編文件還是預處理的C代碼。
實際上,您還希望獲得警告(不會更改生成的可執行文件,但這對您非常有幫助),因此請使用
gcc -O0 -Wall -Wextra Problem04b.c -o Problem04b
-Wall
選項要求幾乎所有警告, -Wextra
選項要求更多警告。
運行您的程序(由於可能的PATH
問題,。 ./
很有用):
./Problem04b
注意-O0
是可選的(因為它是默認值),您可以將其刪除。
gcc -Wall -Wextra Problem04b.c -o Problem04b
如果要進行真正的優化(例如進行基准測試),請使用-O1
或-O2
或-O3
您可能希望使用調試信息進行編譯,然后
gcc -g -Wall -Wextra Problem04b.c -o Problem04b
當然,您需要學習如何使用GDB調試器。 因此,請閱讀有關此內容的一些教程,然后輸入
gdb ./Problem04b
您會收到(gdb)
提示。 那時嘗試help
。
您可能想閱讀GCC文檔中有關調用GCC的章節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.