Продолжение без msvcrt.dll

когда я компилирую пустую главную в mingw, я получаю exe 27kb exe и 1000 строк, генерируемый exe ссылается на kernel32.dll и msvcrt.dll

нашел someghere, что я могу поместить опции -nostdlib -Wl, - exclude-libs, msvcrt.a и теперь сгенерированный exe - 3kb и имеет около 10 строк сборки

это прекрасно, а также зависимость, подобная ходу, не ссылается ни на какие ссылки

я хотел бы продолжить вторую форму (лишенную ссылку msvcrt.dll), но уметь ссылаться на win32.dll-s, чтобы сделать winapi prog (но без c-lib и прочее)

Как теперь ссылаться на dll winapi, когда я выкинул msvcrt.dll? нужно просто добавить некоторые библиотеки импорта для dll winapi или что?

1 ответ

Вы можете просто добавить нужные библиотеки в командной строке ссылки:

gcc -c somefile.c
gcc -o someprogram somefile.o -nostdlib -luser32 -lshlwapi

Вы также можете связать libgcc статически с помощью -static-libgcc чтобы предотвратить выгрузку библиотеки libgcc DLL в msvcrt.dll.

licensed under cc by-sa 3.0 with attribution.