acl 庫的功能參見文章 <acl介紹>,本文主要講述如何編譯和使用 acl 庫。ui
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 兩個平臺了,其它幾個平臺歡迎讀者進行移植。.net
1、Linux 平臺上編譯3d
一、編譯 lib_acl.a 庫調試
進入 lib_acl/ 目錄,直接運行 make,正常狀況下即可在 lib/ 目錄下生成 lib_acl.a 靜態庫,用戶在使用 lib_acl.a 編寫本身的程序時,須要在本身的 Makefile 文件中添加以下選項:blog
1.一、編譯選項:-I 指定 lib_acl/include 所在目錄,-DLINUX2 指定 Linux 平臺ssl
1.二、連接選項:-L 指定 lib_acl.a 所在目錄,-l_acl 指定須要連接 lib_acl.a 庫get
同時,用戶須要在本身的源程序中包含 lib_acl 的頭文件,以下:openssl
#include "lib_acl.h"it
二、編譯 lib_protocol.a 庫
進入 lib_protocol/ 目錄,直接運行 make,正常狀況下即可以在 lib/ 目錄下生成 lib_protocol.a 靜態庫,用戶在使用 lib_protocol.a 編寫本身的程序時,須要在本身的 Makefile 文件中添加以下選項:
2.一、編譯選項:-I 指定 lib_protocol/include 所在目錄,-DLINUX2 指定 Linux 平臺
2.二、連接選項:-L 指定 lib_protocol.a 所在目錄,-L 指定 lib_acl.a 所在目錄,-l_protocol -l_acl
同時,用戶須要在本身的應用程序中包含 lib_protocol 頭文件,以下:
#include "lib_protocol.h"
2、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。
QQ 羣:242722074