c:\program files\microsoft visual studio\vc98\bin
cl.exe是編譯器外殼
c1.dll,
c1xx.dll
,c2.dll
是真正幹活的
link.exe是鏈結器
c:\program files\microsoft visual studio\common\tools\winnt;
c:\program files\microsoft visual studio\common\msdev98\bin;
c:\program files\microsoft visual studio\common\tools;
c:\program files\microsoft visual studio\vc98\bin
環境變數中的path有
vc6.0
編譯器所在的資料夾路徑
虛擬機器開啟cmd,輸入
link
,有相關資訊,安裝了
vs2019
的win10
則沒有,要自己設定環境變數
cl /c /w4 /wx hello.c
只編譯警告等級4 警告視為錯誤 檔名
cl /c /p hello.c 會產生
.i檔案,可以檢視預處理結果
vc++編譯選項詳解:
.obj coff格式,可以跨語言
win: pe格式
linux: elf格式
命令列裡可以省略.ex字尾
新建bat檔案,裡面可以寫生
:del *obj
del *exe
cl /c /w4 /wx hello.c
link hello.obj
hello.exe
pause
#include 尖括號代表先找環境變數,按環境變數裡以分號分隔的路徑依次找,找到就停止,沒找到就找原始碼所在目錄。
#include 」stdio.h」雙引號代表優先找原始碼所在目錄,沒找到就繼續找環境變數。
#include 「name」也可出現在函式中,把該檔案裡的文字都複製貼上進來
maincrtstartup 在\vc98\crt\src\crt0.c檔案裡
使用者的2g記憶體空間,前後64kb的記憶體不予分配。前64kb檢測空指標,後64kb用核心互動
變數初始化盡量賦值,否則裡面留下垃圾值,可能無意中修改了垃圾值對應位址裡的資料。
編譯鏈結詳解
因為這相當於在標頭檔案裡定義了const物件。作為例外,int char等可以進行就地初始化,是因為這些變數可以直接被優化為立即數,就和巨集一樣。此外,對於類的const 非static 成員變數,只能在建構函式的初始化列表中初始化,不能在類內部直接賦值,也不能在類外部賦值。而對於static co...
編譯和鏈結
一般來說,無論是c c 首先要把原始檔編譯成中間 檔案,在windows下也就是 obj 檔案,unix下是 o 檔案,即 object file,這個動作叫做編譯 compile 然後再把大量的object file合成執行檔案,這個動作叫作鏈結 link 編譯時,編譯器需要的是語法的正確,函式與...
編譯與鏈結
首先,我們可以將所有東西都放在乙個.cpp檔案內.然後編譯器就將這個.cpp編譯成.obj,obj是什麼東西?就是編譯單元了.乙個程式,可以由乙個編譯單元組成,也可以有多個編譯單元組成.假如你不想讓你的源 變得很難閱讀的話,就請使用多個編譯單元吧.乙個函式不能放到兩個編譯單元裡面,但兩個以上就可以分...