第 2 章:下载、构建与运行
本章给出依赖安装、源码下载、CMake 构建、启动和 curl 验证的完整命令。
1. 安装依赖
sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config libjsoncpp-dev libssl-devSTTNet 需要 C++17、线程库、JsonCpp 和 OpenSSL。不同发行版的软件包名称可能不同。
2. 下载源码
git clone https://github.com/StephenTaam/STTNet.git
cd STTNet3. 使用 CMake 构建
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
-DSTTNET_BUILD_EXAMPLE=ON \
-DSTTNET_BUILD_TESTS=OFF \
-DSTTNET_BUILD_BENCHMARK=OFF
cmake --build build --parallel4. 运行并验证
./build/examples/sttnet_http_hello
# 另开终端
curl -i http://127.0.0.1:8080/ping预期:状态为
HTTP/1.1 200 OK,响应体为 pong。按 Ctrl+C 后程序应正常退出。5. 常见构建问题与原因
| 现象 | 可能原因与处理 |
|---|---|
| 找不到 json/json.h | 安装 libjsoncpp-dev,删除旧 build 目录后重新配置。 |
| 找不到 OpenSSL | 安装 libssl-dev,并确认 CMake 找到正确架构的库。 |
| 端口绑定失败 | 端口需处于未占用状态;1024 以下端口通常需要额外权限,普通用户可使用 1024 以上端口。 |
| 程序能编译但启动失败 | 查看标准错误和日志,检查证书、权限、端口与 fd 限制。 |
6. 将 STTNet 接入自己的 CMake 项目
add_subdirectory(third_party/STTNet)
add_executable(my_server main.cpp)
target_link_libraries(my_server PRIVATE STTNet::sttnet)通过导出的 CMake 目标接入时,include 路径和依赖会随目标传递,无需单独复制源文件或手工拼接链接参数。