ACL 开发库编译与使用完全指南
概述
ACL 开发库是一套功能强大的跨平台 C/C++ 网络通信和系统编程库,它由多个子库组成,为开发者提供了从底层网络操作到高级应用开发的全套解决方案。本文将详细介绍如何在不同平台上编译和使用这套库。
核心组件介绍
ACL 库包含七个主要组件:
- lib_acl:基础库,提供核心功能
- lib_protocol:HTTP 和 ICMP 协议实现
- lib_acl_cpp:C++ 封装层,增强功能
- lib_fiber:高性能网络协程库
- lib_dict:字典查询功能封装
- lib_tls:OpenSSL 功能封装
- lib_rpc:Protobuf 封装
其中前三个库(lib_acl、lib_protocol、lib_acl_cpp)构成了最基础也是最常用的核心组件。
Linux/UNIX 平台编译指南
编译工具要求
- GCC/G++ 编译器
- GNU Make 工具
静态库编译
1. 编译基础库 libacl.a
进入 lib_acl 目录执行:
make
编译完成后会在 lib 目录生成 libacl.a 静态库。
使用要点:
- 编译时添加头文件路径:
-I./lib_acl/include - 链接时添加:
-L./lib_acl/lib -lacl - 源文件中包含:
#include "lib_acl.h"
2. 编译协议库 libprotocol.a
进入 lib_protocol 目录执行:
make
使用要点:
- 需同时链接 libacl 库
- 注意库的链接顺序:protocol 应在 acl 之前
3. 编译 C++ 封装库 libacl_cpp.a
进入 lib_acl_cpp 目录执行:
make static
使用要点:
- 使用 g++ 而非 gcc
- 严格的库依赖顺序:acl_cpp → protocol → acl
动态库编译
执行命令格式:
make shared rpath=/your/lib/path
编译顺序必须为:libacl → libprotocol → libacl_cpp
特别说明:
- 如需 SSL 支持,需先编译 polarssl 库
- 可通过修改 Makefile 禁用 SSL 支持
单一库编译
为简化使用,可将三个库合并:
make build_one
生成统一的 libacl_all.a 和 libacl_all.so
CMake 编译方式
mkdir build
cd build
cmake ..
make
Windows 平台指南
编译说明
项目提供多个版本的 VC 工程文件:
- acl_cpp_vc2003.sln
- acl_cpp_vc2008.sln
- acl_cpp_vc2010.sln
- acl_cpp_vc2012.sln
支持编译多种版本:
- 静态库调试版/发布版
- 动态库调试版/发布版
使用要点
-
静态库使用:
- 添加包含目录
- 指定库路径和名称
-
动态库使用:
- 需添加预处理器定义
- lib_acl:ACL_DLL
- lib_protocol:HTTP_DLL 和 ICMP_DLL
- lib_acl_cpp:ACL_CPP_DLL
重要注意事项
- 编译顺序:必须遵循 lib_acl → lib_protocol → lib_acl_cpp 的顺序
- 链接顺序:被依赖的库应放在后面
- 跨平台支持:库已支持多种平台,包括移动平台
通过本文的详细指南,开发者可以顺利地在不同平台上编译和使用 ACL 开发库,充分利用其强大的网络编程和系统开发能力。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



