VM 编译运行 Hical Benchmark 流程:不走 Docker 的本地压测方案

VM 直接编译运行 Hical Benchmark 流程 不走 Docker,直接在 VM 上编译项目源码 + bench_server,用 wrk 压测。 适用于需要验证本地代码改动的场景(如性能优化后的 A/B 对比)。 前置条件 VM 里已有 Hical 项目源码:~/projects/Hical/ 已安装编译依赖(GCC 14+、CMake 3.20+、Boost 1.82+、OpenSSL) 挂接点 /mnt/hical_host/ 对应宿主机 d:/hical/Hical/ 一、同步宿主机代码改动到 VM 如果在宿主机上修改了源码,需要先拷贝到 VM 项目目录: 1 2 3 4 5 # 示例:拷贝 3 个改动文件 cp /mnt/hical_host/src/core/HttpServer.h \ /mnt/hical_host/src/core/HttpServer.cpp \ /mnt/hical_host/src/core/HttpSessionImpl.cpp \ ~/projects/Hical/src/core/ 或者整体同步 src 目录: 1 rsync -av /mnt/hical_host/src/ ~/projects/Hical/src/ 二、编译 1 2 3 4 5 6 7 8 9 10 cd ~/projects/Hical # 清理旧构建(可选,首次或 CMake 配置变更时执行) rm -rf build # 配置:Release + 编译 bench_server cmake -B build -DCMAKE_BUILD_TYPE=Release -DHICAL_BUILD_BENCH=ON # 编译(-j 自动取 CPU 核数) cmake --build build -j$(nproc) 编译产物:build/bench_server(直接链接本地 hical_core 库,代码改动即生效)。 ...

May 8, 2026 · 6 min · 1193 words

现代 CMake 课程学习:从「面向目录」到「面向目标」

现代 CMake 课程学习:从「面向目录」到「面向目标」 现代 CMake 不是新语法,是新思维。 写在前面 这篇文章适合谁? 用过 CMake 但只会 add_executable + target_link_libraries 的人 从 Makefile / Visual Studio 工程迁移过来,想系统学 CMake 的人 看别人 CMakeLists.txt 里一堆 PUBLIC、$<BUILD_INTERFACE:...> 一头雾水的人 什么是 CMake?(30 秒版本) CMake 不是编译器,它是一个构建系统生成器。你写一份 CMakeLists.txt,CMake 帮你生成对应平台的构建文件: Linux → Makefile 或 Ninja Windows → Visual Studio .sln 或 Ninja macOS → Xcode 或 Ninja 类比:CMake 就像一个"翻译官",你用一种语言描述"我要编译什么",它翻译成各平台编译器能理解的指令。 为什么要学"现代" CMake? CMake 从 2000 年诞生至今,经历了巨大变化。2014 年的 CMake 3.0 是分水岭——引入了 target-based(面向目标)设计。此后的版本持续完善这套体系。 如果你还在用 include_directories()、link_libraries() 这套"传统写法",那你用的是 2014 年之前的思路——就像 2025 年还在写 C++98 一样。 ...

June 1, 2025 · 15 min · 3155 words