test.c
#include
#include
int main()else
return 0;
}gcc -wall -g -o test test.c
其中,-wall 代表編譯器在編譯過程中會輸出警告資訊(warning),比如有些變數你並沒有使用,指標指向的型別有誤,main 函式沒有返回整數值等。這類資訊雖然不是錯誤,不影響編譯,但是很可能是程式 bug 的源頭,也有助於你尋找**中的錯誤,規範**格式。所以建議每次編譯時都加上 -wall 引數。
-g 代表編譯器會收集除錯(debug)資訊,這樣如果你的程式執行出錯,就可以通過 gdb 或者 lldb 等工具進行逐行除錯,方便找出錯誤原因。如果你不是百分之百確定你的程式毫無問題,建議加上 -g 引數。這樣 debug 的時候會方便很多。
-o 代表編譯器會將編譯完成後的可執行檔案以你指定的名稱輸出到你指定的資料夾下。-o 的空格後的名稱就是輸出的檔案的名稱。例如我這裡 -o 後是 dot,就是說 gcc 會在編譯成功後在我的當前目錄下生成乙個叫 dot 的可執行檔案。如果不加這個引數,每次編譯後生成的可執行檔案都會放在根目錄下,名字叫做 a.out。每次編譯成功後都會把上一次的 a.out 檔案覆蓋。所以建議加上 -o 引數,這樣可以更加條理。
./test
解決Mac下CLion無法編譯執行多個cpp的問題
wsl,終於解決了,每次都配不好,實在是ddl催促我趕緊弄好,不解決的問題遲早得解決掉 有兩種方法 一種是每次新建乙個cpp就去修改cmakelists.txt裡面的檔案,一種是進行配置然後之後每次就點一下就行。第一種方法 下面是第二種方法 點選clion preference plugins 在右...
Mac上編譯C 報錯
今天在使用mac編譯c 檔案時,提示以下錯誤。1 undefined symbols for architecture x86 64 2 std 1 vector base common throw length error const referenced from 3 void std 1 ve...
C 編譯 執行原理
關於編譯與記憶體的關係,以及執行時記憶體的劃分 1 所謂在編譯期間分配空間指的是靜態分配空間 相對於用new動態申請空間 如全域性變數或靜態變數 包括一些複雜型別的 常量 它們所需要的空間大小可以明確計算出來,並且不會再改變,因此它們可以直接存放在可執行檔案的特定的節裡 而且 包含初始化的值 程式執...