gnu編譯器
g++編譯
c++程式:
在windows下,進入源**所在的路徑下,在命令列中輸入:
g++ -o test.exe test.cpp將test.cpp
編譯生成
test.exe
可執行檔案,如果沒有
-o test.exe
選項,預設生成
a.exe
在linux下,進入源**所在的路徑下,在命令列中輸入:
g++ -o test test.cpp將test.cpp
編譯生成
test
可執行檔案(
linux
下檔案沒有字尾名,通過檔案屬性和執行許可權識別),預設生成
a.out
,可能需要在命令尾部輸入
-std=c++0x
來支援c++11
標準注意:可新增-wall選項來開啟所有警告,-w來忽略所有警告(嚴重不推薦)
微軟visual studio
編譯器編譯c++程式:
在windows下,開始
->
所有程式
->visual studio->visual studio tools->
執行vs
開發人員命令提示,在命令列中輸入:
cl /ehsc test.cpp生成test.exe
檔案(/ehsc
引數來開啟標準異常)
在linux下無
visual studio
編譯器
注意:可新增/w4來開啟所有警告
分離編譯器編譯原始檔的過程
linux下
gcc分步編譯
hello world為例
由上圖可知,hello的c檔案到可執行檔案經歷了預處理、編譯、彙編、鏈結等幾個過程,下面進行分步編譯過程:
.c檔案經過預處理生成.i檔案(將#include裡面的內容新增到.c檔案中形成.i檔案)
gcc -o hello.i -e hello.c.i檔案編譯生成.s彙編檔案
gcc -o hello.s -s hello.i.s彙編檔案匯編生成.o目標檔案(二進位制檔案)
gcc -o hello.o -c hello.s.o目標檔案鏈結生成可執行檔案(鏈結一些動態靜態庫)
gcc -o hello hello.o至此生成hello的可執行檔案
關於switch的一些小知識
之前給大家介紹過關於if的一些小用法,在c語言中還有另外乙個條件判斷語句,那就是switch語句,今天我就給大家介紹一些關於switch的用法。首先,我們先聊聊為什麼要在已經擁有if語句的情況下還要再建立switch語句。那就是因為if語句雖然可以實現多分支結構,但是比較複雜 不夠直觀,而switc...
關於C 的一些小知識
不行,可以這樣理解 static修飾的方法可以直接用類名呼叫 非static修飾的方法必須用類new出物件才能呼叫 當我們用類名直接呼叫時,可能這個類的物件並沒有new。如果這時候static方法裡呼叫非static的方法就會出現空指標異常,當然這種錯誤編譯時就不會通過。錯誤 演示 1 class ...
關於Integer物件的一些小知識
之前有看見乙個題,題就不說了,最終結論是 integer物件在建立的時候,對於 128 127數字將會不會建立新的物件,而是直接應用常量池中integer物件。然後最近,在stackoverflow看到乙個比較有意思的問題 public class test public static test g...