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.

Prerequisite: Ensure you have followed the Environment Setup Guide (MinGW & CMake) Предварительное условие: Убедитесь, что вы выполнили инструкции из руководства по настройке среды (MinGW и 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 (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

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

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp