cpp
OpenSSL官网:
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
我安装的是Win64 OpenSSL v4.0.1
paho-c-build-x64.bat
该脚本虽然没有显式指定 SSL 路径,但 CMake 会通过 自动探测机制 找到你系统上安装的
cpp
@echo off
setlocal enabledelayedexpansion
:: =====================================================
:: 参数检查
:: =====================================================
if "%~4"=="" (
echo.
echo Usage:
echo build.bat install_prefix build_type build_samples build_with_ssl
echo.
exit /b 1
)
set "INSTALL_PREFIX=%~f1"
set "BUILD_TYPE=%~2"
set "BUILD_SAMPLES=%~3"
set "BUILD_WITH_SSL=%~4"
set "PROJECT_DIR=C:\Users\Administrator\Desktop\paho.mqtt.c"
if not exist "%PROJECT_DIR%" (
echo [ERROR] not found: %PROJECT_DIR%
exit /b 1
)
pushd "%PROJECT_DIR%"
:: =====================================================
:: STATIC BUILD CONFIG
:: =====================================================
set "BUILD_DIR=build-x64\%BUILD_TYPE%"
set "INSTALL_DIR=%INSTALL_PREFIX%\paho-c\%BUILD_TYPE%"
set "GENERATOR=Visual Studio 16 2019"
echo.
echo ==========================================
echo BUILD PAHO-C (STATIC ONLY)
echo ==========================================
echo INSTALL = %INSTALL_DIR%
echo ==========================================
echo.
:: =====================================================
:: CLEAN
:: =====================================================
if exist "%BUILD_DIR%" (
rmdir /s /q "%BUILD_DIR%"
)
:: =====================================================
:: CMAKE (STATIC ONLY FIX)
:: =====================================================
cmake ^
-G "%GENERATOR%" ^
-A x64 ^
-B "%BUILD_DIR%" ^
-DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%" ^
-DPAHO_BUILD_SHARED=OFF ^
-DPAHO_BUILD_STATIC=ON ^
-DBUILD_SHARED_LIBS=OFF ^
-DPAHO_WITH_SSL=%BUILD_WITH_SSL% ^
-DPAHO_BUILD_SAMPLES=%BUILD_SAMPLES% ^
-DPAHO_ENABLE_TESTING=OFF
if errorlevel 1 (
echo [ERROR] configure failed
popd
exit /b 1
)
cmake --build "%BUILD_DIR%" ^
--config %BUILD_TYPE% ^
--target install
if errorlevel 1 (
echo [ERROR] build failed
popd
exit /b 1
)
popd
echo.
echo ==========================================
echo PAHO-C STATIC BUILD SUCCESS
echo ==========================================
pause
cpp
打开Developer Command Prompt for VS 20xx
终端上执行:
C:\Users\Administrator\Desktop\Mqtt-Script\paho-c-build-x64.bat C:\Users\Administrator\Desktop\build Release TRUE TRUE
C:\Users\Administrator\Desktop\Mqtt-Script\paho-c-build-x64.bat是我bat脚本所在路径,
C:\Users\Administrator\Desktop\build是编译后的安装目录
paho-cpp-build-x64.bat
cpp
@echo off
setlocal enabledelayedexpansion
:: =====================================================
:: 参数检查
:: =====================================================
if "%~4"=="" (
echo.
echo Usage:
echo build.bat install_prefix build_type build_samples build_with_ssl
echo.
echo Example:
echo build.bat D:\install Release TRUE TRUE
echo.
exit /b 1
)
:: =====================================================
:: 用户参数
:: =====================================================
set "INSTALL_PREFIX=%~f1"
set "BUILD_TYPE=%~2"
set "BUILD_SAMPLES=%~3"
set "BUILD_WITH_SSL=%~4"
if "%BUILD_TYPE%"=="" set "BUILD_TYPE=Release"
if "%BUILD_SAMPLES%"=="" set "BUILD_SAMPLES=FALSE"
if "%BUILD_WITH_SSL%"=="" set "BUILD_WITH_SSL=FALSE"
:: =====================================================
:: 固定路径
:: =====================================================
set "PROJECT_DIR=C:\Users\Administrator\Desktop\paho.mqtt.cpp"
set "PAHO_C_INSTALL=C:\Users\Administrator\Desktop\build\paho-c\%BUILD_TYPE%"
:: =====================================================
:: 检查 paho-c
:: =====================================================
if not exist "%PAHO_C_INSTALL%\include" (
echo [ERROR] paho-c not found:
echo %PAHO_C_INSTALL%
exit /b 1
)
:: =====================================================
:: 进入 cpp
:: =====================================================
pushd "%PROJECT_DIR%"
:: =====================================================
:: 输出目录
:: =====================================================
set "BUILD_DIR=build-x64\%BUILD_TYPE%"
set "INSTALL_PATH=%INSTALL_PREFIX%\paho-cpp\%BUILD_TYPE%"
:: =====================================================
:: CMake generator
:: =====================================================
set "GENERATOR=Visual Studio 16 2019"
echo.
echo ==========================================
echo PAHO-C PATH = %PAHO_C_INSTALL%
echo INSTALL PATH = %INSTALL_PATH%
echo BUILD TYPE = %BUILD_TYPE%
echo BUILD MODE = SHARED (DLL)
echo ==========================================
echo.
:: =====================================================
:: CMake configure(关键修复)
:: =====================================================
cmake ^
-G "%GENERATOR%" ^
-A x64 ^
-B "%BUILD_DIR%" ^
-DCMAKE_INSTALL_PREFIX="%INSTALL_PATH%" ^
-DPAHO_BUILD_SAMPLES=%BUILD_SAMPLES% ^
-DPAHO_WITH_SSL=%BUILD_WITH_SSL% ^
-DBUILD_SHARED_LIBS=ON ^
-DCMAKE_PREFIX_PATH="%PAHO_C_INSTALL%"
if errorlevel 1 (
echo [ERROR] configure failed
popd
exit /b 1
)
:: =====================================================
:: build + install
:: =====================================================
cmake --build "%BUILD_DIR%" ^
--config %BUILD_TYPE% ^
--target install
if errorlevel 1 (
echo [ERROR] build failed
popd
exit /b 1
)
popd
:: =====================================================
:: success
:: =====================================================
echo.
echo ==========================================
echo BUILD SUCCESS (DLL VERSION)
echo ==========================================
echo paho-cpp install:
echo %INSTALL_PATH%
echo ==========================================
pause
cpp
打开Developer Command Prompt for VS 20xx
终端上执行:
C:\Users\Administrator\Desktop\Mqtt-Script\paho-cpp-build-x64.bat C:\Users\Administrator\Desktop\build2 Release TRUE TRUE
C:\Users\Administrator\Desktop\Mqtt-Script\paho-cpp-build-x64.bat是我bat脚本所在路径,
C:\Users\Administrator\Desktop\build2是编译后的安装目录
注意:使用cpp库时,依赖c库,所以使用时把c库的lib放在cpp的lib目录下