將之前在 Windows 8 系統中寫的一些小程式(包含執行檔) copy 到別的目錄,赫然發現在 Windows 8 所編譯出來的 hello.exe 檔案竟然有 6.4 MB 那麼大,比對之前在 Windows 7 以前的檔案,icuTest.exe 只有 50K, locale.exe 只有 1.1 MB。於是在不同的系統測試,以 hello.cpp 測試結果如下: 1. FreeBSB :7.3 K 2. MinGW32 on Windows XP:9.34 K 3. Visual Studio on Windows 8:68 K 4. Clang on Windows XP: 5.36 K 另外,拿 boost 程式測試 boost library 測試產生 Binary 檔的結果: 1. FreeBSB :未測試 2. MinGW32 on Windows XP:1.08 MB 3. Visual Studio on Windows 8:未測試 4. Clang on Windows XP: 471 KB ,但是在 XP 仍然不能 work 這樣的差別太大,使用 gcc -s 的參數,將 gcc 所編譯出來的執行檔,不含所有的 symbol table,測試結果如下: 1. FreeBSB :5 K 2. MinGW32 on Windows XP:4.68 K 3. MinGW64 on Windows 8:671 K 結論是:在 Windows 系統中要加入 -s 選項。 在 CodeBlocks 中有一個相同的選項,在 Settings -> Compiler 中,要記得將 Strip all symbols from binary(minimize size [-s] 這個項目選取,產生的 Binary 檔才不會太大。 順帶一提,使用 Visual Studio for Desktop 測試 hello.cpp 程式,利用 win32 的 template 時,會 include "stdafx.h" 這個 header,而 include <iostream> 必須在它之後 include 進來,否則找不到 <iostream> 這個 head...