这是一个使用纯 C 语言实现的跨平台聊天应用,支持 Windows 和 Linux。
- 跨平台支持(Windows/Linux)
- 客户端:GUI 界面(基于 Dear ImGui + GLFW)
- 服务端:控制台应用
- TCP 网络通信
- 实时消息传输
- MinGW-w64 或 Visual Studio 2019+
- CMake 3.10+
- Git(用于自动下载依赖)
sudo apt update
sudo apt install -y build-essential cmake git libgl1-mesa-dev libglfw3-dev libglew-dev# 进入项目目录
cd duckchat
# 创建构建目录
mkdir build
cd build
# 配置项目
cmake ..
# 编译
cmake --build .
# 或者使用 make
# make编译完成后:
build/client- 客户端程序build/server- 服务端程序
# 在 WSL 中安装交叉编译工具
sudo apt install -y mingw-w64 cmake git
# 交叉编译
mkdir build-win
cd build-win
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw.cmake
makeLinux:
gcc -o server server.c -lpthreadWindows (MinGW):
gcc -o server.exe server.c -lws2_32# Linux/Mac
./server
# Windows
server.exe
# 指定端口(可选)
./server 9999# Linux/Mac
./client
# Windows
client.exe- 先启动服务端
- 启动一个或多个客户端
- 在客户端中输入:
- 服务器 IP 地址(默认:127.0.0.1)
- 端口号(默认:8888)
- 用户名
- 点击 "Connect" 连接
- 在消息框中输入消息并发送
duckchat/
├── client.c # 客户端源代码(C 语言 + Dear ImGui GUI)
├── server.c # 服务端源代码(C 语言控制台)
├── CMakeLists.txt # CMake 构建配置
├── README.md # 说明文档
├── build.sh # Linux 编译脚本
└── build.bat # Windows 编译脚本
- 语言: C11
- GUI 库: Dear ImGui (即时模式 GUI)
- 窗口库: GLFW
- 图形库: OpenGL 3.0+
- 网络: BSD Sockets (跨平台)
| 特性 | Qt 版本 | C 语言版本 |
|---|---|---|
| 编程语言 | C++ | C |
| GUI 框架 | Qt Widgets | Dear ImGui |
| 依赖大小 | ~500MB | ~50MB |
| 编译时间 | 较长 | 较短 |
| 跨平台 | 是 | 是 |
| 静态链接 | 困难 | 容易 |
错误:找不到 ws2_32.lib
- 确保使用 MinGW 或 Visual Studio 编译
错误:缺少 OpenGL
- 更新显卡驱动
- 安装 GLFW:
choco install glfw
错误:找不到 glfw3.h
sudo apt install libglfw3-dev错误:找不到 GL/gl.h
sudo apt install libgl1-mesa-devMIT License
- Dear ImGui: https://github.com/ocornut/imgui
- GLFW: https://github.com/glfw/glfw