# IISC-Test **Repository Path**: MyDearest35/iisc-test ## Basic Information - **Project Name**: IISC-Test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-26 - **Last Updated**: 2026-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IISC-Test ## 构建说明 1. CMake 默认构建工具选择 ninja 2. CMake 构建额外选项 ```shell -G Ninja -DCMAKE_TOOLCHAIN_FILE=C:\LaoZu\Code\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-mingw-dynamic ``` 3. 编译器 Windows 选择 LLVM-MinGW UCRT 可以 winget 安装 4. 编译器 Ubuntu 选择 LLVM 可以 brew 安装 ## Swagger UI 文档 1. 原文链接:https://developer.aliyun.com/article/1662388 2. 下载启动 Swagger UI ```bash git clone https://github.com/swagger-api/swagger-ui.git cd swagger-ui npm install npm run dev ``` ## 关于 LLVM-MinGW 环境下编译问题 ```cmake ### 解决 Boost.Thread windows版本宏定义太低问题 #错误非常明确: #boost::winapi 里找不到 #WaitOnAddress #WakeByAddressSingle #WakeByAddressAll #这三个函数是 Windows 8 / Server 2012 及以上版本才提供的 同步原语。 #llvm-mingw 默认把 _WIN32_WINNT 设成 0x0600(Vista),于是 里不会声明这几个 API,导致 Boost 1.89 在编译时直接报错。 #解决办法(任选其一) #把整个 vcpkg 的 MinGW 动态三元组 的宏定义抬到 Windows 8 #不需要手写 #ifdef _WIN32 之类的判断。 #Triplet 文件本身就是只在 Windows 下、且只在 MinGW 工具链里生效的配置, #vcpkg 在其它平台或其它工具链根本不会去读取 x64-mingw-dynamic.cmake,所以直接写死宏即可: #这里 _WIN32_WINNT 升到 0x0A00(Windows 10) #打开 triplet 文件,在尾后添加 两个set #{VCPKG_ROOT}\triplets\community\x64-mingw-dynamic.cmake set(VCPKG_CXX_FLAGS "-D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00") set(VCPKG_C_FLAGS "-D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00") ### 解决 Boost.Cobalt 链接问题 # 给所有 port 统一加缺的那两个系统库 set(VCPKG_LINKER_FLAGS "-lbcrypt -lmswsock") ``` ## 关于 MacOS brew clang 环境下编译问题 brew clang 不知道 MacOS 的 Dev 头文件在哪,需要在 cmake 命令补充 ```shell -DCMAKE_CXX_FLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" -DCMAKE_C_FLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" ```