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 13.1 and CMake. Полное руководство по статической компиляции сетевого стека WebSocket на Windows с помощью MinGW 13.1 и CMake.

Prerequisite: Ensure you have followed the Environment Setup Guide (MinGW 13.1 & CMake) Предварительное условие: Убедитесь, что вы выполнили инструкции из руководства по настройке среды (MinGW 13.1 и CMake)

1. Compile zlib (v1.3.2) 1. Компиляция zlib (v1.3.2)

2. Compile Mbed TLS (v4.1.0) 2. Компиляция Mbed TLS (v4.1.0)

3. Compile IXWebSocket (v12.0.0, master branch) 3. Компиляция IXWebSocket (v12.0.0, ветка master)

Notice: We pass -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. Следующие шаги

Success! Your network library stack is successfully built. Ready to implement it into an application? Proceed to the next step: Setting up IXWebSocket with SDL3 and OpenGL. Успех! Ваш сетевой стек библиотек успешно собран. Готовы интегрировать его в приложение? Переходите к следующему шагу: Настройка IXWebSocket с SDL3 и OpenGL.

Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank

Sberbank SBP QR Code

Direct transfer via phone number Перевод по номеру телефона

+7 (917) 212-29-59

Bybit (USDT TRC20)

Bybit USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp