當前位置:首頁 » 電腦資訊 » 為什麼我用vc編輯的文件體積大

為什麼我用vc編輯的文件體積大

發布時間: 2022-09-13 04:05:33

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版就小多了!!!

熱點內容
晚上微信拍照手電筒為什麼打不開 發布:2024-11-19 06:22:15 瀏覽:454
孩子犯錯為什麼家長先罵 發布:2024-11-19 06:19:23 瀏覽:690
共享文件為什麼不能粘貼 發布:2024-11-19 06:12:57 瀏覽:441
為什麼炸東西是紅的 發布:2024-11-19 06:09:12 瀏覽:358
彩繪巧克力為什麼淘寶沒有 發布:2024-11-19 05:59:25 瀏覽:876
為什麼電腦打開wegame彈出文件阻止 發布:2024-11-19 05:33:12 瀏覽:179
為什麼微信轉賬看不了別人的名字 發布:2024-11-19 05:27:38 瀏覽:92
頭條下載的文件為什麼有一個問號 發布:2024-11-19 05:27:04 瀏覽:947
一歲的柯基為什麼喜歡咬東西 發布:2024-11-19 05:24:43 瀏覽:503
電腦顯示器為什麼裡面有點歪 發布:2024-11-19 05:18:10 瀏覽:57