STTNet 0.7.0

第 2 章:下载、构建与运行

本章给出依赖安装、源码下载、CMake 构建、启动和 curl 验证的完整命令。

1. 安装依赖

sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config libjsoncpp-dev libssl-dev

STTNet 需要 C++17、线程库、JsonCpp 和 OpenSSL。不同发行版的软件包名称可能不同。

2. 下载源码

git clone https://github.com/StephenTaam/STTNet.git
cd STTNet

3. 使用 CMake 构建

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
  -DSTTNET_BUILD_EXAMPLE=ON \
  -DSTTNET_BUILD_TESTS=OFF \
  -DSTTNET_BUILD_BENCHMARK=OFF
cmake --build build --parallel

4. 运行并验证

./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 路径和依赖会随目标传递,无需单独复制源文件或手工拼接链接参数。