文档章节

acl 的编译与使用

郑树新
 郑树新
发布于 2014/09/03 12:10
字数 733
阅读 23
收藏 0

      acl 库的功能参见文章 <acl介绍>,本文主要讲述如何编译和使用 acl 库。

      acl 下其实有四个库:lib_acl (基础库)、lib_protocol(http 和 icmp 协议库)、lib_dict(封装了 bdb, cdb, Tokyo Cabinet 库的用于字典查询的库)以及 lib_tls(封装了openssl部分功能的库,主要用于 lib_acl 的 ssl 加密传输)。其中,笔者用的最多还是 lib_acl 和 lib_protocol 两个库,所以本文主要介绍这两个库的编译与使用。

      开始时 acl 库是支持 Linux、Solaris、FreeBSD 和 Windows 平台的,但后来由于受限于机器环境,所以现在仅支持到 Linux 和 Windows 两个平台了,其它几个平台欢迎读者进行移植。

 

      一、Linux 平台上编译

      1、编译 lib_acl.a 库

      进入 lib_acl/ 目录,直接运行 make,正常情况下便可在 lib/ 目录下生成 lib_acl.a 静态库,用户在使用 lib_acl.a 编写自己的程序时,需要在自己的 Makefile 文件中添加如下选项:

      1.1、编译选项:-I 指定 lib_acl/include 所在目录,-DLINUX2 指定 Linux 平台

      1.2、链接选项:-L 指定 lib_acl.a 所在目录,-l_acl 指定需要链接 lib_acl.a 库

       同时,用户需要在自己的源程序中包含 lib_acl 的头文件,如下:

       #include "lib_acl.h"

 

       2、编译 lib_protocol.a 库

       进入 lib_protocol/ 目录,直接运行 make,正常情况下便可以在 lib/ 目录下生成 lib_protocol.a 静态库,用户在使用 lib_protocol.a 编写自己的程序时,需要在自己的 Makefile 文件中添加如下选项:

       2.1、编译选项:-I 指定 lib_protocol/include 所在目录,-DLINUX2 指定 Linux 平台

       2.2、链接选项:-L 指定 lib_protocol.a 所在目录,-L 指定 lib_acl.a 所在目录,-l_protocol -l_acl

       同时,用户需要在自己的应用程序中包含 lib_protocol 头文件,如下:

       #include "lib_protocol.h"

 

      二、Windows 平台

      2.1 编译

      进入 acl\win32_build\vc 目录,用 vc2003 打开工程文件:acl_project_vc2003.sln  (原来还支持VC6及VC2008,但也好久没有更新这两个工程文件了)。用户可以选择编译 lib_acl、lib_protocol 的静态库调试版、静态库发布版、动态库调试版以及动态库发布版,编译完成后,会在 acl\dist\lib\win32 目录生成的静态库有:

      lib_acl_vc2003d.lib、lib_acl_vc2003.lib、lib_protocol_vc2003d.lib 和 lib_protocol_vc2003.lib;
      生成的与动态库相关的文件有:lib_acl_d.dll/lib_acl_d.lib,lib_acl.dll/lib_acl.lib,lib_protocol_d.dll/lib_protocol_d.lib 和 lib_protocol.dll/lib_protocol.lib。

 

      2.2 使用

      a)在 win32 平台下使用 lib_acl 和 lib_protocol 静态库时,只需要在包含目录中添加 lib_acl/include 和 lib_protocol/include 所在的路径,在链接时指定静态库路径及静态库名称。

      b)在 win32 平台下使用 lib_acl 的动态库时,不仅要做与 a) 中所指定的操作,而且需要在预处理器定义中添加:ACL_DLL;在使用 lib_protocol 的动态库,需要在预处理器定义中添加:HTTP_DLL 和 ICMP_DLL。

 

 

      个人微博:http://weibo.com/zsxxsz

      acl 下载

      原文地址

      更多文章

      QQ 群:242722074

© 著作权归作者所有

郑树新

郑树新

粉丝 105
博文 87
码字总数 161171
作品 2
昌平
程序员
私信 提问
acl 3.1.3 版本发布,网络通信与服务器框架

acl 3.1.3 版本发布了,acl 是 one advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台;整个 acl 项目主要包含三个...

郑树新
2015/08/27
2.2K
6
使用 acl 生成向导快速创建服务器程序

在以前有关使用 acl 的技术文章(如:使用 acl::masterthreads 类编写多进程多线程服务器程序 ,用 acl::masteraio 类编写高并发非阻塞服务器程序,使用 acl::master_proc 类编写多进程服务器...

郑树新
2014/09/03
273
0
一个 C++ redis 集群管理工具

集群版 redis3.0 发布以来,官方仅提供了一个使用 ruby 写的集群管理工具,在创建 redis 集群时需要使用该工具。因为 ruby 中的一些包依赖问题,导致一些生手在建立 redis 集群时吃尽了苦头。...

郑树新
2015/04/19
39
0
ACL在VS2008编译链接时出现delete重定义错误

你在,我在引用ACL库写线程函数时,编译链接,出现错误:错误内容为 1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *,int,char const *,int)" (??3@YAXP......

irisjyf
2016/04/28
341
0
网络与服务器编程框架库 acl_3.0.12 发布

acl 3.0.12 版本 (项目主页:https://sourceforge.net/projects/acl/, 技术文章主页:http://zsxxsz.ietye.com/) 发布了,acl 是 one Advanced C/C++ library 的简称,主要包括网络通信库以及...

郑树新
2013/10/03
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

目标检测中 yolo 的mAP是什么含义?

mAP定义及相关概念 P => precision,即 准确率 R => recall,即 召回率 PR曲线 = >即 以 precision 和 recall 作为 纵、横轴坐标 的二维曲线。一般来说,precision 和 recall 是 鱼与熊掌 的...

小松1
2分钟前
1
0
用jdk1.8的断言来做非空判断

Assert.notNull(user, "没有获得登录用户信息"); 看源码如下: public static void notNull(Object object, String message) { if (object == null) { throw new IllegalArgum......

architect刘源源
7分钟前
2
0
免费节假日api每一时间更新 2020年 部分节假日安排

根据国务院办公厅关于2020年部分节假日安排的通知国办发明电〔2019〕16号.免费节假日api每一时间更新 2020年 部分节假日安排 http://tool.bitefu.net/jiari/ 各省、自治区、直辖市人民政府,...

xiaogg
10分钟前
3
0
2018NOIP各省一等奖分数线

提高组 普及组

SamXIAO
19分钟前
5
0
常见的PPT时间轴怎么制作,这几种方法你要知道

在PPT当中,时间轴是一个非常重要的一个版块,很多PPT会用它来表示公司的发展历程和项目进度。但是对于PPT时间轴的制作很多人做法是一条直线上添几个点,标注出事件就完成了,可是这样也太过...

TeFuiro
25分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部