MSYS2 ucrt64 で
int main() { std::cout << "Hello World." << std::endl; return 0; }
これを g++ -s -Os -static
でビルドすると 1 MB を超える。
int main() { std::puts("Hello World.\n"); return 0; }
こうすると 17 KB.
-s
なしのバイナリサイズが libstdc++.dll
と同じくらいなので、使っていない関数がまったく削除されていないのか。そういうものだっけ。