為什麼我用vc編輯的文件體積大
1. C++編譯後的文件為什麼體積特大
正常,在編寫小的短的程序C沒有匯編有優勢,一個程序很簡單的程序用TC編譯成30K正常
你可以這樣理解
編譯 就跟模板似的,有固定的開頭結尾,中間是你的程序編譯的代碼,開頭結尾最簡單也要幾K,所以再加上你的程序不可能很短
你是用的TC 而不是用的VC++ 沒有動態庫與靜態庫的問題,
但是如果改變些TC編譯選項可能對編譯結果大小有影響
2. 為什麼VC++生成的程序要比VB生成的要大得多
不是的
是因為編譯器的問題
由於高級語言都有什麼函數庫
而這些高級語言的代碼翻譯成匯編就會產生好多垃圾代碼
所以文件比較大 有的編譯器 會產生比較小 就這原因
最高效的就是匯編語言了
VC是微軟的產品 生成出來的程序這么大 肯定有它的原因
而TC之類的編譯器 生成的程序比VC小好多
象C 語言 是靜態連接庫 生成的文件肯定會大點
假如
我們的程序只用到
printf();這函數 它需要包含頭文件<stdio.h>
編譯器會把整個stdio.h文件都包含到程序代碼中
這就是程序大的原因之一
第二就是編譯器的問題
3. 為什麼VC++開發的DLL文件這么大
生成dll時,選擇動態鏈接生成,會減少dll體積,但用戶電腦沒有dll的依賴庫,就無法運行。靜態鏈接可以讓dll默認打包依賴庫,但會增加體積。
MFC的dll比Win32的要大,必要時可以用win32工程,製作dll。
4. 如何縮小vc編譯的文件體積
如果你是指編譯後的完整工程(包括中間文件等),那麼不推薦縮小,也沒辦法很好的縮小。
如果你是指編譯後,最終完成的EXE,那麼太多辦法來縮小。
比如:
編譯模式中,優化模式Optimizations選擇為Minimize Size
編譯選擇Release模式而不是Debug模式,去掉EXE中的調試信息
對MFC和其它鏈接庫選擇動態編譯,使用DLL而不是LIB,可以極大降低EXE的文件大小
資源文件優化,或者將資源文件做成外置資源,那麼EXE的文件大小也可以大幅度壓縮
完成編譯後,對exe文件進行打包加殼,可以降低大概30~40%的文件大小
5. 為什麼VC++生成的DLL文件那麼大,怎樣才能變小
1.debug版帶有調試信息,所以很大,如果是release版會小很多。
2.項目屬性,如果是靜態連接運行時庫的就比較大,如果是動態連接運行時庫的(在共享 DLL 中使用 MFC)就比較小
3.WIN32 dll比較小,且使用不同的運行時庫的化,生成的dll文件大小也有差別。(工程屬性-》C/C++-》代碼生成-》運行時庫)。使用不同的運行時庫,有微軟的、STD的有單線程多線程。
6. vs2010 生成的項目文件為什麼這么大
使用VS2010建立C++解決方案時,會生成SolutionName.sdf和一個叫做ipch的文件夾,這兩個文件再加上*.pch等文件使得工程變得非常的龐大,一個簡單的程序都會佔用幾十M的硬碟容量,可惜畢竟硬碟還沒有廉價到免費的地步。
那麼,該怎麼解決呢?其實可以關閉它。方法:
Tools->Options->Text Editor->C/C++->Advanced->Disable Database,設置為True
但是這樣的辦法會產生另外的一些問題,可能會導致其他的一些功能不能使用。例外一種解決方法是:
Tools->Options->Text Editor->C/C++->Advanced,在 Fallback Location 的屬性組中,將"Always Use Fallback Location"設置為 true,將"Do Not Warn If Fallback Location Used" 設置為 true ,然後刪除解決方案目錄下的 sdf 文件和 ipch 目錄,再次打開解決方案,發現這些煩人的東西已經不見了。
那麼那些文件放置到那裡了呢?看 "Fallback Location" 屬性說明:這是存儲瀏覽信息資料庫和 IntelliSense 文件的第二個位置,如果不指定則放置到臨時目錄中;到臨時目錄一看,裡面有一個 VC++ 的目錄,都在那個目錄裡面呢。
可以在 "Fallback Location" 屬性中,設置一個固定的路徑來存儲這些文件,比如D:\VS2010Temp,這樣也比較好管理這些龐大的臃腫的文件,可以定期清理掉它們,釋放出硬碟空間!
7. 我用vc6.0 生成的文件太大,咋辦
用vs建的工程動則上百m,主要都是些工程文件,代碼也才幾百k
8. 為什麼編譯出的程序體積那麼大
那是因為用Delphi編寫的圖形界面程序必須包含VCL庫,否則無法在未安裝Delphi運行時間庫的機子上運行,靜態鏈接的話會將程序用到的VCL組件部分都鏈接到可執行文件中去,所以文件體積比較大,如果編譯是選擇Build with Runtime packages,但是系統里必須已安裝Delphi運行時間庫。
9. 為何用VC6生成的exe文件體積很大和VB6相比。
你那是Debug版,改成Release版就小多了!!!