Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2007-07-09 09:39:39 ЛС | профиль | цитата
Понятно, что для корректных сравнений нужно синхронизировать версии...

У меня пока найденный на халяву mingw 2.0.0
В ём:
GCC-3.2-core-20020817-1
binutils-2.13-20020903-1
mingw-runtime-2.2
w32api-2.0
gdb-5.1.1-1
make-3.79.1-20010722 (binary renamed as mingw32-make)

Так вот, если просто такой файлик компилировать
#include <windows.h>

int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
MessageBox (NULL, "Test message", "Test", MB_OK);
return 0;
}
Через
gcc -o hello.exe hello.c -Wl,-s,--subsystem,windows

То получаю размер 10752
Если попытать просто переименовать его в hello.cpp, начинаются затыки у линкера.
Действительно, помогает подключение библиотек ручками: либо supc++, либо stdc++
Для supc++ файлик становится сразу 50688

Без "затыков" срабатывает
g++ -o hello.exe hello.c -Wl,-s

Сам находит нужную либу, да и про целевой формат смекнул как-то

А вот попытка скомпилить такое (та же ком.строка)
#include <iostream.h>

int main (int argv, char** argc)
{
cout<<"hello, world";
}
Так это вообще за пределами добра и зла

И что характерно, это я не Америку открыл, судя по ихнему FAQ-у
http://www.mingw.org/mingwfaq.shtml#faq-cpp-size
Словеса там умные и непонятные...

А если конкретно, то в примере make_mod.sha у меня получилась make_mod.dll размером 56832
Командной строкой
%mingw%ing++.exe -shared *.cpp -o make_mod.dll -Wl,-s

Хотя в том же пакете Modules эта же DLL-ка сделанная дельфёй (с KOL-овским PStrList-ом) - 18944

Вот такие у меня и наблюдения
карма: 9

0