确保 .sdk 目录下已安装以下依赖:
teamtalk/.sdk/
├── protobuf/
│ ├── include/google/protobuf/
│ ├── lib/libprotobuf-lite.so (或 .a)
│ └── bin/protoc
├── jsoncpp/
│ ├── include/json
│ └── lib/jsoncpp.so (或 .a)
└── spdlog/
└── include/spdlog/- CMake >= 3.10
- C++ 编译器(支持 C++11)
- Linux: g++ 或 clang++
- Windows: MSVC 或 MinGW
- Python 3.x(用于生成 protobuf 代码)
cd proto
python3 build.py这将:
- 查找所有
.proto文件 - 生成 C++ 代码(
.pb.h和.pb.cc) - 将头文件复制到
include/imcore/ttidl/ - 将源文件复制到
src/imcore/ttidl/
# 返回项目根目录
cd ..
# 创建构建目录
mkdir build
cd build
# 配置 CMake
cmake ..自定义安装路径(可选):
cmake -DCMAKE_INSTALL_PREFIX=/custom/path ..make或者使用多核编译加速:
make -j$(nproc) # Linux
make -j4 # 使用 4 个核心make install默认安装到 teamtalk/.sdk/teamtalk-imcore/ 目录:
teamtalk/.sdk/teamtalk-imcore/
├── include/imcore/ # 头文件
│ ├── common/
│ ├── netlib/
│ ├── security/
│ ├── slog/
│ ├── string/
│ ├── ttidl/ # protobuf 生成的头文件
│ └── ostype.h
└── lib/
├── libimcore.so # Linux 动态库
├── libimcore.so.1
└── libimcore.so.1.0.0
# 或 Windows:
# ├── imcore.dll
# └── imcore.lib
创建一个一键编译脚本 build.sh:
#!/bin/bash
set -e
echo "=========================================="
echo "TeamTalk IMCore Build Script"
echo "=========================================="
# 1. 生成 protobuf 代码
echo "Step 1: Generating protobuf code..."
cd proto
python3 build.py
cd ..
# 2. 配置和编译
echo "Step 2: Building..."
if [ ! -d "build" ]; then
mkdir build
fi
cd build
cmake ..
make -j$(nproc)
# 3. 安装
echo "Step 3: Installing..."
make install
echo "=========================================="
echo "Build completed successfully!"
echo "Library installed to: $(cmake -L .. 2>/dev/null | grep CMAKE_INSTALL_PREFIX | cut -d= -f2)"
echo "=========================================="使用方法:
chmod +x build.sh
./build.shREM 1. 生成 protobuf 代码
cd proto
python build.py
cd ..
REM 2. 生成 VS 项目
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -A x64 ..
REM 3. 打开 VS 项目或命令行编译
cmake --build . --config Release
REM 4. 安装
cmake --install . --config Releasecd proto
python build.py
cd ..
mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make
mingw32-make install