Building IXWebSocket, MbedTLS, and zlib from Source (MinGW) Сборка IXWebSocket, MbedTLS и zlib из исходного кода (MinGW)
A comprehensive guide to compiling the WebSocket network stack statically on Windows using MinGW and CMake. Полное руководство по статической компиляции сетевого стека WebSocket на Windows с помощью MinGW и CMake.
1. Compile zlib (v1.3.2) 1. Компиляция zlib (v1.3.2)
-
Download the Source code (zip) archive from the official release page:
Скачайте архив Source code (zip) со страницы официального релиза:
-
Extract the zlib132.zip archive to the
C:/libsfolder. Open your terminal, navigate to your zlib source directory: Распакуйте архив zlib132.zip в папкуC:/libs. Откройте терминал, перейдите в папку с исходным кодом zlib:cd C:\libs\zlib-1.3.2
-
Configure the build directory and options using CMake. Copy and paste the following command to generate the MinGW Makefiles:
Настройте директорию сборки и параметры конфигурации с помощью CMake. Скопируйте и вставьте следующую команду для генерации файлов сборки MinGW:
cmake -G "MinGW Makefiles" -S . -B dist -DCMAKE_INSTALL_PREFIX=C:/libs/zlib-1.3.2-mingw -DCMAKE_BUILD_TYPE=MinSizeRel -
Compile the library using 8 parallel compilation threads to speed up the process:
Скомпилируйте библиотеку, используя 8 параллельных потоков сборки для ускорения процесса:
cmake --build dist -j8 -
Install the compiled headers and binaries to the designated directory (
C:/libs/zlib-1.3.2-mingw): Установите скомпилированные заголовочные файлы и библиотеки в указанную директорию (C:/libs/zlib-1.3.2-mingw):cmake --install dist
2. Compile Mbed TLS (v4.1.0) 2. Компиляция Mbed TLS (v4.1.0)
-
Download the mbedtls-4.1.0.tar.bz2 archive from the official release page:
Скачайте архив mbedtls-4.1.0.tar.bz2 со страницы официального релиза:
-
Extract the mbedtls-4.1.0.tar.bz2 archive to the
C:/libsfolder. Open your terminal, navigate to yourmbedtls-4.1.0source directory: Распакуйте архив mbedtls-4.1.0.tar.bz2 в папкуC:/libs. Откройте терминал, перейдите в папку с исходным кодомmbedtls-4.1.0:cd C:\libs\mbedtls-4.1.0
-
Run the following commands to generate and install the static library binaries:
Выполните следующие команды для генерации и установки статических бинарников библиотеки:
cmake -G "MinGW Makefiles" -S . -B dist -DCMAKE_INSTALL_PREFIX=C:/libs/mbedtls-4.1.0-mingw -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=MinSizeRel cmake --build dist -j8 cmake --install dist
3. Compile IXWebSocket (v12.0.0, master branch) 3. Компиляция IXWebSocket (v12.0.0, ветка master)
-DCMAKE_CXX_STANDARD_LIBRARIES="-lbcrypt -lcrypt32 -lws2_32" to guarantee system cryptography and network socket routines link cleanly at the absolute end of the command line chain.
Примечание: Мы передаем флаг -DCMAKE_CXX_STANDARD_LIBRARIES="-lbcrypt -lcrypt32 -lws2_32", чтобы гарантировать корректную линковку системных библиотек шифрования и сокетов в самом конце цепочки аргументов.
Provide the explicit paths to your newly built zlib and Mbed TLS library targets so IXWebSocket can reference them during static compilation: Укажите явные пути к только что собранным библиотекам zlib и Mbed TLS, чтобы IXWebSocket мог ссылаться на них во время статической компиляции:
cd C:\libs\IXWebSocket-12.0.0-master
cmake -G "MinGW Makefiles" -S . -B dist -DCMAKE_INSTALL_PREFIX=C:/libs/IXWebSocket-12.0.0-master-mingw -DZLIB_INCLUDE_DIR=C:/libs/zlib-1.3.2-mingw/include -DZLIB_LIBRARY=C:/libs/zlib-1.3.2-mingw/lib/libzs.a -DMBEDTLS_LIBRARY=C:/libs/mbedtls-4.1.0-mingw/lib/libmbedtls.a -DMBEDTLS_INCLUDE_DIRS=C:/libs/mbedtls-4.1.0-mingw/include -DMBEDX509_LIBRARY=C:/libs/mbedtls-4.1.0-mingw/lib/libmbedx509.a -DMBEDCRYPTO_LIBRARY=C:/libs/mbedtls-4.1.0-mingw/lib/libmbedcrypto.a -DUSE_TLS=ON -DUSE_WS=ON -DUSE_ZLIB=ON -DCMAKE_CXX_STANDARD_LIBRARIES="-lbcrypt -lcrypt32 -lws2_32" -DCMAKE_BUILD_TYPE=MinSizeRel
cmake --build dist -j8
cmake --install dist
4. Expected Output Structure 4. Ожидаемая структура вывода
Once all installation processes complete, your C:/libs folder will contain the prepared standalone directories ready for project targeting:
После завершения всех процессов установки ваша папка C:/libs будет содержать готовые отдельные директории, готовые для подключения к проектам:
C:/libs/
├── zlib-1.3.2-mingw/
│ ├── include/
│ └── lib/libzs.a
├── mbedtls-4.1.0-mingw/
│ ├── include/
│ └── lib/ [libmbedtls.a, libmbedx509.a, libmbedcrypto.a]
└── IXWebSocket-12.0.0-master-mingw/
├── include/
└── lib/libixwebsocket.a
5. Next Steps 5. Следующие шаги
Support My Work Поддержать проект
If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.
Sberbank (Russia only) Сбербанк (только для РФ)
Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)
USDT TRC20
Support via Cryptocurrency Поддержка криптовалютой