PS Wiki

Живее всех живых

Инструменты пользователя

Инструменты сайта


win:dev:mingw

MinGW & MSYS

Официальный сайт (OSDN)

Установка

  1. Загрузите и запустите mingw-get-setup.exe
  2. Нажмите кнопку Install, а затем кнопку Continue
  3. Дождитесь, когда кнопка Continue будет доступна
  4. Нажмите кнопку Continue, а затем выберите пункты:
    • Basic Setupmingw-developer-toolkit-bin
    • Basic Setupmingw32-base-bin
    • Basic Setupmingw32-gcc-g++-bin
    • All Packagesmingw32-libz-dev
  5. Выберите в меню InstallationApply Changes
  6. В новом окне нажмите на Apply, а затем на Close
  7. Закройте программу MinGW Installation Manager

Использование

Дополнительно

  • OpenSSL:
    1. Запустите C:\MinGW\msys\1.0\msys.bat
    2. Выполните следующие команды построчно:
      wget -q --show-progress https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
      tar -xvf openssl-1.0.2u.tar.gz && cd openssl-1.0.2u
      ./config && make
    3. Скопируйте папку include\openssl в C:\MinGW\include
    4. Скопируйте файлы libcrypto.a и libssl.a в C:\MinGW\lib
  • Статическая линковка zlib:
    • Удалить или переименовать C:\MinGW\lib\libz.dll.a
      или
    • Добавить -static в начало LDFLAGS внутри Makefile

Обновление

  1. Запустите C:\MinGW\libexec\mingw-get\guimain.exe
  2. Выберите в меню InstallationMark All Upgrades
  3. Выберите в меню InstallationApply Changes
  4. В новом окне нажмите на Apply, а затем на Close
  5. Закройте программу MinGW Installation Manager

Очистка кэша

  • Удалите все файлы из папки C:\MinGW\var\cache\mingw-get\packages

Компиляция (MinGW)

  • Сборка через make/makefile
    mingw32-make.bat
    @echo off
    path=C:\MinGW\bin;C:\MinGW\msys\1.0\bin
    mingw32-make.exe
    pause
  • Очистка через make/makefile
    mingw32-clean.bat
    @echo off
    path=C:\MinGW\bin;C:\MinGW\msys\1.0\bin
    mingw32-make.exe clean
    pause
  • Сборка через gcc/program.c
    gcc-make.bat
    @echo off
    path=C:\MinGW\bin;C:\MinGW\msys\1.0\bin
    if "%1" neq "" (
      echo "%~nx1"
      gcc.exe -static -O2 -s -o "%~dpn1.exe" "%1"
      strip.exe -s "%~dpn1.exe"
    )
    pause

Hello World

  • program.c
    // ISO/IEC 9899:TC3
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[]) {
      printf("Hello World\n");
      return 0;
    }
  • program.bat
    @echo off
    path=C:\Dev\SDK\mingw\bin;C:\Dev\SDK\mingw\msys\1.0\bin
    if not exist %~n0.exe (
    	gcc.exe -static -O2 -s -o %~n0.exe %~n0.c
    	strip.exe -s %~n0.exe
    )
    if exist %~n0.exe (
    	file %~n0.exe
    	ldd %~n0.exe
    	%~n0.exe
    )
    pause

Удаление

  • Удалите папку C:\MinGW
win/dev/mingw.txt · Последнее изменение: 2024.03.27 19:04:03 — admin