注:因为现在 acl_cpp 已经合并进 acl 项目中,本文仅是介绍了老版本的 acl_cpp 的编译过程,新版本的介绍及编译请参考:acl 框架库简介。
acl_cpp 是基于 acl 为基础开发的,目前 acl_cpp 象 acl 一样支持 Linux 和 Windows 平台。有关 acl 的编译,请参考 《acl 的编译与使用 》,本文主要描述 acl_cpp 的编译与使用。
一、Linux 平台
acl_cpp 库编译后的静态库名为:lib_acl_cpp.a
1、编译 lib_acl_cpp.a 库
进入 acl_cpp 目录,直接运行命令:make 便可以在 lib/ 目录下生成 lib_acl_cpp.a 库,头文件在 include/ 目录下。
2、使用 lib_acl_cpp.a 库
用户在使用 lib_acl_cpp.a 库时,需要修改自己的 Makefile 文件,增加编译选项如下:
-I 指定 acl_cpp/include 头文件目录 ;
-L 指定 lib_acl_cpp.a 所在目录
-l_acl_cpp
因为 lib_acl_cpp.a 基于 lib_acl.a 和 lib_protocol.a,所以在链接您的程序时还需要添加这两个依赖库的位置,如:
-L {path_to_protocol} -l_protocol -L {path_to_acl} -l_acl -L{path_to_acl_cpp} -l_acl_cpp
另外,用户需要在自己的源程序或头文件中包含头文件:#include "acl_cpp/lib_acl.hpp"
二、Windows 平台
Win32 平台下,静态库名为:lib_acl_cpp.lib
1、编译 lib_acl_cpp.lib/lib_acl_cpp.dll 库
目前可以用 vc2003 或 vc2010 分别打开工程文件:acl_cpp_vc2003.sln 或 acl_cpp_vc2010.sln 来编译 win32 下的静态库或动态库。
2、使用 lib_acl_cpp.lib/lib_acl_cpp.dll 库
在您的工程中需要指定 acl_cpp/include 的头文件路径,同时在链接时需要指定库的位置,此外,还需要在您的源程序或头文件中包括头文件 "lib_acl.hpp";
另外,还得把 lib_acl_vc2003.lib 和 lib_protocol_vc2003.lib 拷贝到您的工程目录中;如果是连接动态库,则需要将 lib_acl.dll, lib_protocol.dll, lib_acl_cpp_vc2003_dll.dll 动态库拷贝至您的可执行程序折运行目录。
如果您对编译和使用 acl_cpp 的库有疑问,请参考 acl_cpp/samples/ 下的示例,有完整的 Makefile 文件或 win32 下的工程文件。
原文件地址:http://zsxxsz.iteye.com/blog/1535688
github: https://github.com/acl-dev/acl
更多文章: http://zsxxsz.iteye.com/
QQ 群:242722074
相关推荐
acl 库是啥、主要包含哪些功能? acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)...默认情况下,没有这些第三方库编译和使用 acl 库是没有问题的,只是不能使用 mysql/sqlite/ssl/protobuf 功能。
4. **lib_acl_cpp**:这个文件名有些不完整,但根据上下文推测,它可能与C++版本的ACL库有关,可能是另一个部分或更新的版本。 在实际开发中,开发者需要将这些库文件链接到他们的C++项目中,通过`#include`指令...
在IT行业中,Dev-C++是一款广泛使用的开源C++集成开发环境(IDE),它为程序员提供了编写、编译、调试C++程序的便利工具。在这个"test_devc++_"的项目中,我们关注的是如何利用Dev-C++的ACL库( Allegro Computer ...
在“3_caozuoxitong_”的实验中,3_1.cpp可能是实现文件系统功能的源代码文件,而其他如3.dsp、3.dsw、3.ncb、3.opt、3.plg等通常是开发工具(如Visual Studio)的项目文件,用于编译和管理源代码。Debug目录则可能...
Jabberd2 作为新一代的 Jabberd 项目,与原来的 Jabberd 1.x 有着显著的不同,它不仅提供了更高效、可扩展和安全的架构,还引入了许多改进和优化。 Jabberd2 的核心特性包括: 1. **模块化设计**:Jabberd2 的设计...
这个函数允许我们设置安全描述符,其中包含了访问控制列表(ACL),定义了哪些用户或用户组可以执行何种操作。 下面是一个简单的C++示例,展示了如何修改注册表键的权限: ```cpp #include #include void ...
3. **身份验证与授权**:可能使用了某种认证协议,如HTTP Basic Auth或自定义的验证机制,以及权限控制模型,如ACL(Access Control List)来管理用户权限。 4. **文件系统接口**:服务器和客户端都需要与文件系统...
开发者在自己的项目中引用这些头文件就可以使用ACL库提供的功能。 3. **库文件(Library Files)**:可能包含`.lib`或`.dll`文件,`.lib`是静态链接库,可以直接链接到项目中;`.dll`是动态链接库,需要在运行时...
与匿名管道相比,命名管道可以跨越不同的会话和安全上下文,更适用于跨网络或跨用户的应用场景。 ### 创建命名管道 创建命名管道通常涉及以下步骤: 1. **定义管道名称**:一个唯一的字符串,用于标识管道。例如...
2. **编译和构建**:解压源代码后,使用标准的Linux构建工具(如`./configure`,`make`,`make install`)进行编译和安装。这将生成所需的内核模块和用户空间组件。 3. **配置服务器**:XtreemFS由多个组件组成,...
它们包含了编译设置、依赖关系和目标平台等信息。 综上所述,这个压缩包提供了一套C语言实现的工具,用于处理和管理Windows环境下的底层安全功能,包括访问控制、权限验证和安全描述符的操作。开发者可以利用这些...
matlab精度检验代码扩散-扩散代码和相关实用程序以及在社区检测中的应用 去做 实现Andersen Lang截断的惰性随机游走算法。 编写专门用于计算P ^ k * s的gendiff_mex特殊版本。...gendiff_mex.cpp实现了我们的广义
Oracle SQL语句中的Update可以和SEQUENCE联合使用,以达到更新某字段的值连续编号,而不需要... PROC编程中将PROC源文件编译成PROC文件语句(其中参数可选): proc iname=file.cpp oname=file.cxx threads=yes;
描述中的“可移植”指的是源代码可以在多种操作系统上编译和运行,这通常涉及到跨平台编程技术,如使用POSIX兼容的C/C++,或者依赖于像Qt、wxWidgets这样的跨平台库来构建用户界面。 在提供的文件列表中,"USR"可能...
编译这个程序时,你需要链接OCCI库和SQL*Plus库。例如,使用以下命令: ```sh g++ test.cc -o test -I/usr/include/oracle/10.2.0.5/client -L/usr/lib/oracle/10.2.0.5/client/lib -locci -lsqlplus ``` 在运行...
这个项目源于开发者在使用Visual C++时发现,编译过程会产生大量中间文件,而这些文件往往不能自动清理,从而启发了他开发这样一个实用工具。 外壳扩展程序是Windows操作系统中的一种机制,通过COM(组件对象模型)...
然而,如果需要更高的性能,可以考虑优化算法,比如使用预编译的正则表达式、Aho-Corasick算法或Boyer-Moore算法。 4. **应用场景**: 字符串模糊匹配在很多场景都有应用,例如: - 访问控制列表(ACL)的实现,...