資源描述:
《C++編譯器詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、C/C++編譯器-cl.exe的命令選項和在IDE中編譯相比,命令行模式編譯速度更快,并可以避免被IDE產(chǎn)生的一些附加信息所干擾。本文將介紹微軟C/C++編譯器命令行模式設(shè)定和用法。1、設(shè)置環(huán)境變量:PATH=C:ProgramFilesMicrosoftVisualStudio8VCbinINCLUDE=C:ProgramFilesMicrosoftVisualStudio8VCincludeLIB=C:ProgramFilesMicrosoftVisualStudio8V
2、Clib如果提示找不到mspdb80.dll文件,則從C:ProgramFilesMicrosoftVisualStudio8Common7IDE下拷貝“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”這四個文件到C:ProgramFilesMicrosoftVisualStudio8VCbin下即可。2、命令選項:1)??????/C:在預(yù)處理輸出中保留注釋語句2)??????/c:只編譯,不連接,相當于在"Build"菜單
3、下選擇了"Compile"3)??????/D:定義常量和宏,與源程序里的#define有相同效果4)??????/E:預(yù)處理C、C++源文件,將源文件中所有的預(yù)編譯指令及宏展開,將注釋去掉,然后將預(yù)處理器的輸出拷貝至標準輸出設(shè)備輸出,并且在每個文件的開頭和末尾加入#line5)??????/EH:指定編譯器用何種異常處理模型6)??????/EP:同/E,只是去掉了#line7)??????/F:設(shè)置程序的堆棧大小8)??????/FA:設(shè)置生成何種列表文件(匯編、匯編與機器碼、匯編與源碼、匯編
4、與機器碼以及源碼)9)??????/Fa:指定用/FA設(shè)置的列表文件的存放路徑及(或)文件名10)?/FD:生成文件的相互依賴信息11)?/Fd:設(shè)置程序數(shù)據(jù)庫文件(PDB)的存放路徑及(或)文件名12)?/Fe:設(shè)置最終可執(zhí)行文件的存放路徑及(或)文件名13)?/FI:預(yù)處理指定的頭文件,與源文件中的#include有相同效果14)?/Fm:創(chuàng)建map文件15)?/Fo:設(shè)置編譯后Obj文件的存放路徑及(或)文件名16)?/Fp:設(shè)置預(yù)編譯文件(pch)的存放路徑及(或)文件名17)?/FR:生
5、成瀏覽信息(sbr)文件18)?/Fr:同/FR,不同之處在于/Fr不包括局部變量信息19)?/G3:為80386處理器優(yōu)化代碼生成20)?/G4:為80486處理器優(yōu)化代碼生成21)?/G5:為Pentium處理器優(yōu)化代碼生成22)?/G6:為PentiumPro處理器優(yōu)化代碼生成23)?/GA:為Windows應(yīng)用程序作優(yōu)化24)?/GB:為Pentium處理器優(yōu)化代碼生成,使用80386、80486、Pentium、PentiumPro的混合指令集,是代碼生成的默認選項(程序?qū)傩赃x項中Pro
6、cessor對應(yīng)Blend)25)?/GD:為Windows動態(tài)庫(dll)作優(yōu)化,此開關(guān)在VC6中沒有實現(xiàn)26)?/Gd:指定使用__cdecl的函數(shù)調(diào)用規(guī)則27)?/Ge:激活堆棧檢測28)?/GF:消除程序中的重復(fù)的字符串,并將她放到只讀的緩沖區(qū)中29)?/Gf:消除程序中的重復(fù)字符串30)?/Gh:在每個函數(shù)的開頭調(diào)用鉤子(hook)函數(shù)--penter31)?/Gi:允許漸進編譯32)?/Gm:允許最小化rebuild33)?/GR:允許運行時類型信息(Run-TimeTypeInfom
7、ation)34)?/Gr:指定使用__fastcall的函數(shù)調(diào)用規(guī)則35)?/Gs:控制堆棧檢測所用內(nèi)存大小36)?/GT:支持用__declspec(thread)分配的數(shù)據(jù)的fier-safety37)?/GX:允許同步異常處理,與/EHsc開關(guān)等價38)?/Gy:允許編譯器將每一個函數(shù)封裝成COMDATs的形式,供連接器調(diào)用39)?/GZ:允許在Debugbuild的時候捕捉Releasebuild的錯誤40)?/Gz:指定使用__stdcall的函數(shù)調(diào)用規(guī)則41)?/H:限制外部名字的長
8、度42)?/HELP:列出編譯器的所有的命令開關(guān)43)?/I:指定頭文件的搜索路徑44)?/J:將char的缺省類型從signedchar改成unsignedchar45)?/LD:創(chuàng)建一個動態(tài)連接庫46)?/LDd:創(chuàng)建一個Debug版本的動態(tài)鏈接庫47)?/link:將指定的選項傳給連接器48)?/MD:選擇多線程、DLL版本的CRun-Time庫49)?/MDd:選擇多線程、DLL、Debug版本的CRun-Time庫50)?/ML:選擇單線程版本的CRun—Time庫51)