『壹』 vc++ 6.0裡面的compile、build、go三個按鈕是什麼區別
compile:編譯成目標文件
build:生成exe或DLL、lib等(其中包括了編譯和鏈接的過程)
go;運行
編譯器先進行預處理,然後對.cpp源文件進行單獨編譯生成各自的obj,然後把這些obj文件鏈接成exe。
編譯器負責將源代碼文件轉換成對象模塊,而鏈接器可使用這些對象模塊來創建可執行的程序
『貳』 vc++編譯錯誤什麼意思
error LNK2001: unresolved external symbol _DrawDibRealize@12
Debug/xiu.exe : fatal error LNK1120: 1 unresolved externals
這是說明,你用了DrawDibRealize()函數,但是你只包含了含有該函數的頭文件,而沒引用含有該函數的庫(.lib)文件。你應該用#pragma comment(lib, "那個庫.lib")編譯命令,引用那個庫。
e:\xiu\dib1.cpp(5) : warning C4652: compiler option 'Generate Browser Info' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header
首先這是個警告,意思是:編譯器選項 "生成瀏覽器信息" 與預編譯頭文件選項沖突;當前命令行選項將會覆蓋定義在預編譯頭文件中的選項。
這個問題,你可以試著修改項目屬性中的"生成瀏覽器信息"的選項,不過這個你也可以不管,同樣可以編譯通過。
『叄』 vc++的編譯器選項怎麼用
工程 設置 鏈接 自定義分類 不要勾選增加鏈接就可以了 求採納
『肆』 vc中的編譯和調試有什麼區別
在編程中一般經過編譯和連接之後才能將源文件生成一個可執行的文件。
編譯的過程實際上就是一個解釋源代碼的過程,讓機器可以識別。
調試是用來查看程序有什麼錯誤的,一般都採用單步調試或設置斷點調試。
調試的前提是先編譯你的源文件。
『伍』 VC6.0如何生成匯編文件並顯示編譯選項
使用了比較久VC6.0,但是從來沒有關注過VC的詳細編譯過程,剛好同事這兩天做反編譯工作,所以就查了一下VC的編譯工具cl的編譯設置。 下面簡單的說兩個我自己比較關注的問題: 1、讓VC在編譯過程顯示詳細的參數(去掉/nologo): 那麼,編譯過成的輸出如下: --------------------Configuration: test - Win32 Debug-------------------- Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. cl /MLd /W3 /Gm /GX /ZI /Od /D WIN32 /D _DEBUG /D _CONSOLE /D _MBCS /FAs /FaDebug/ /FRDebug/ /FpDebug/test.pch /YX /FoDebug/ /FdDebug/ /FD /GZ /c E:\work\test\test\2-2.c 2-2.c Note: Creating precompiled header Debug/test.pch 2-2.obj - 0 error(s), 0 warning(s) 可以看到,所有的編譯參數了。 2、只編譯生成對應的匯編文件: 在反編譯過程其實主要是分析匯編文件的,但是為了把我們所做的反編譯結果(就是C語言結果)進行驗證,就必須重新編譯成匯編結果,並與之前的匯編語言進行對比,一致才說明自己結果的正確性。 如果要生成匯編文件,需要設置如下選項: 這樣在VC的生成目錄(Release/Debug),就生成對應的匯編文件了。 有關於詳細的編譯參數和相關設置,可以參考:VC6.0編譯參數設置
『陸』 vc的各編譯選項都是什麼意思
VC編譯選項
/Od 禁用優化(默認值) disable optimizations (default)
/Ox 最大化選項。(/Ogityb2 /Gs) maximum opts. (/Ogityb1 /Gs)
/Og 啟用全局優化 enable global optimization
/Oy[-] 啟用框架指針省略 enable frame pointer omission
/Oi 啟用內建函數 enable intrinsic functions
-代碼生成-
/G3 為 80386 進行優化 optimize for 80386
/G4 為 80486 進行優化 optimize for 80486
/GR[-] 啟用 C++ RTTI enable C++ RTTI
/G5 為 Pentium 進行優化 optimize for Pentium
/G6 為 Pentium Pro 進行優化 optimize for Pentium Pro
/GX[-] 啟用 C++ 異常處理(與 /EHsc 相同) enable C++ EH (same as /EHsc)
/EHs 啟用同步 C++ 異常處理 enable synchronous C++ EH
/GD 為 Windows DLL 進行優化 optimize for Windows DLL
/GB 為混合模型進行優化(默認) optimize for blended model (default)
/EHa 啟用非同步 C++ 異常處理 enable asynchronous C++ EH
/Gd __cdecl 調用約定 __cdecl calling convention
/EHc extern「C」默認為 nothrow extern "C" defaults to nothrow
/Gr __fastcall 調用約定 __fastcall calling convention
/Gi[-] 啟用增量編譯 enable incremental compilation
/Gz __stdcall 調用約定 __stdcall calling convention
/Gm[-] 啟用最小重新生成 enable minimal rebuild
/GA 為 Windows 應用程序進行優化 optimize for Windows Application
/Gf 啟用字元串池 enable string pooling
/QIfdiv[-] 啟用 Pentium FDIV 修復 enable Pentium FDIV fix
/GF 啟用只讀字元串池 enable read-only string pooling
/QI0f[-] 啟用 Pentium 0x0f 修復 enable Pentium 0x0f fix
/Gy 分隔鏈接器函數 separate functions for linker
/GZ 啟用運行時調試檢查 enable runtime debug checks
/Gh 啟用鉤子函數調用 enable hook function call
/Ge 對所有函數強制堆棧檢查 force stack checking for all funcs
/Gs[num] 禁用堆棧檢查調用 disable stack checking calls
-輸出文件-
/Fa[file] 命名程序集列表文件 name assembly listing file
/Fo 命名對象文件 name object file
/FA[sc] 配置程序集列表 configure assembly listing
/Fp 命名預編譯頭文件 name precompiled header file
/Fd[file] 命名 .PDB 文件 name .PDB file
/Fr[file] 命名源瀏覽器文件 name source browser file
/Fe 命名可執行文件 name executable file
/FR[file] 命名擴展 .SBR 文件 name extended .SBR file
/Fm[file] 命名映射文件 name map file
-預處理器-
/FI 命名強制包含文件 name forced include file
/C 不吸取注釋 don't strip comments
/U 移除預定義宏 remove predefined macro
/D{=|#} 定義宏 define macro
/u 移除所有預定義宏 remove all predefined macros
/E 將預處理定向到標准輸出 preprocess to stdout
/I 添加到包含文件的搜索路徑 add to include search path
/EP 將預處理定向到標准輸出,不要帶行號 preprocess to stdout, no #line
/X 忽略「標准位置」 ignore "standard places"
/P 預處理到文件 preprocess to file
-語言-
/Zi 啟用調試信息 enable debugging information
/Zl 忽略 .OBJ 中的默認庫名 omit default library name in .OBJ
/ZI 啟用調試信息的「編輯並繼續」功能 enable Edit and Continue debug info
/Zg 生成函數原型 generate function prototypes
/Z7 啟用舊式調試信息 enable old-style debug info
/Zs 只進行語法檢查 syntax check only
/Zd 僅要行號調試信息 line number debugging info only
/vd{0|1} 禁用/啟用 vtordisp disable/enable vtordisp
/Zp[n] 在 n 位元組邊界上包裝結構 pack structs on n-byte boundary
/vm 指向成員的指針類型 type of pointers to members
/Za 禁用擴展(暗指 /Op) disable extensions (implies /Op)
/noBool 禁用「bool」關鍵字 disable "bool" keyword
/Ze 啟用擴展(默認) enable extensions (default)
- 雜項 -
/?, /help 列印此幫助消息 print this help message
/c 只編譯,不鏈接 compile only, no link
/W 設置警告等級(默認 n=1) set warning level (default n=1)
/H 最大化外部名稱長度 max external name length
/J 默認 char 類型是 unsigned default char type is unsigned
/nologo 取消顯示版權消息 suppress right message
/WX 將警告視為錯誤 treat warnings as errors
/Tc 將文件編譯為 .c compile file as .c
/Yc[file] 創建 .PCH 文件 create .PCH file
/Tp 將文件編譯為 .cpp compile file as .cpp
/Yd 將調試信息放在每個 .OBJ 中 put debug info in every .OBJ
/TC 將所有文件編譯為 .c compile all files as .c
/TP 將所有文件編譯為 .cpp compile all files as .cpp
/Yu[file] 使用 .PCH 文件 use .PCH file
/V 設置版本字元串 set version string
/YX[file] 自動的 .PCH 文件 automatic .PCH
/w 禁用所有警告 disable all warnings
/Zm 最大內存分配(默認為 %) max memory alloc (% of default)
-鏈接-
/MD 與 MSVCRT.LIB 鏈接 link with MSVCRT.LIB
/MDd 與 MSVCRTD.LIB 調試庫鏈接 link with MSVCRTD.LIB debug lib
/ML 與 LIBC.LIB 鏈接 link with LIBC.LIB
/MLd 與 LIBCD.LIB 調試庫鏈接 link with LIBCD.LIB debug lib
/MT 與 LIBCMT.LIB 鏈接 link with LIBCMT.LIB
/MTd 與 LIBCMTD.LIB 調試庫鏈接 link with LIBCMTD.LIB debug lib
/LD 創建 .DLL Create .DLL
/F 設置堆棧大小 set stack size
/LDd 創建 .DLL 調試庫 Create .DLL debug libary
/link [鏈接器選項和庫] [linker options and libraries]
『柒』 VC++6.0中的兩個編譯按鈕有什麼區別
第一個是Compile,是編譯,編譯當前顯示的文件
第二個是Build,是編譯工程內所有需編譯文件並連接編譯好的obj文件,生成可執行程序。
『捌』 請問vc中的project options是什麼意思呢/nologo /MLd /W3 /Gm ……
project options 是指工程選項。
下面這些是VC內核的編譯參數,可以去學學機器語言,或者匯編語言,會對這些和內存有關聯的參數有更深了解
『玖』 在vc中,什麼是編譯,預處理,鏈接
預處理即對源碼進行編譯前處理
語句前為"#"的語句就是在預處理期間作用的
如#include會在此位置帖上文件的內容,#define則會替換字串的內容
編譯是將源文件處理成目標文件的過程,目標文件並不是可執行的代碼,它包含有許多位置代碼,如某些函數在可執行文件的實際位置
如編譯出來的目標文件有類似的位息:
main: 233
fun1: 300
fun2: 545
fun3: 700
鏈接則是將許多目標文件合並處理成可執行文件
如上例中
main和fun1在1.obj中
fun2和fun3在2.obj中
這樣在第一個文件中main函數里可以調用fun2,並可以通過編譯,而不用定義
在鏈接時,鏈接器統計所有obj里的這種位置信息
然後將1.obj中引用fun2中的內容替換成545
這樣,兩個obj中的函數等信息可以互相調用
『拾』 求助啊!!!VC2010沒有編譯這個選項,只有生成解決方案和生成
按Ctrl+F7就是編譯呀,Ctrl+F5就是連接,跟VC6.0一樣,VC2010下載是麻煩,不過用的人還是很多的。