介绍一下 OpenLDAP 2.4.45 相关的头文件和库文件

前端之家收集整理的这篇文章主要介绍了介绍一下 OpenLDAP 2.4.45 相关的头文件和库文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
按照前一篇博文的介绍,在 64 位 CentOS 6.8 上编译安装 openldap-2.4.45 版。完成后,发现 OpenLDAP 在安装过程中会把一些重要的头文件,如 lber.h,ldap.h 等拷贝到 /usr/local/include 目录下。如果要查看全部头文件,在这台计算机上是将下载的 openldap-2.4.45.tgz 文件解压到了 /myfiles/ldap/openldap-2.4.45 目录下,到该目录的 include 子目录下,可以找到全部的头文件

在安装时如果未指定安装目录,在安装过程中会将以下文件拷贝到 /usr/local/lib 目录下:

liblber.a
liblber.la
liblber.so
liblber-2.4.so.2
liblber-2.4.so.2.10.8

libldap.a
libldap.la
libldap.so
libldap-2.4.so.2
libldap-2.4.so.2.10.8

libldap_r.a
libldap_r.la
libldap_r.so
libldap_r-2.4.so.2
libldap_r-2.4.so.2.10.8

实际上安装脚本程序存在一个 Bug:由于本机安装的是 64 位操作系统,而通常 /usr/local/lib 目录下默认存放 32 位的库文件,64 位的库文件应该放到 /usr/local/lib64 目录下,建议用户将这些库文件移动到 /usr/local/lib64 目录下。

OpenLDAP最重要的动态库文件包括以下三个:liblber.so,libldap.so,libldap_r.so,对应的静态库文件是:liblber.a,libldap.a,libldap_r.a。但全部库文件不只有这些,假设 OpenLDAP 文件存放在目录 /myfiles/ldap/openldap-2.4.45 下,在该目录下有一个名为 libraries 的子目录,在该目录下包含的全部库文件及其存放位置如下图所示:

libraries /---- liblber / .libs/ (该目录下的库文件包括:liblber.a ,liblber.so)

|

| -- libldap_r / (该目录下的库文件包括:libldap_r.a ,libldap_r.so)

|

| -- liblunicode / (该目录下的库文件包括:liblunicode.a)

|

| -- libldap / .libs / (该目录下的库文件包括:libldap.a , libldap.so)

|

| -- librewrite / (该目录下的库文件包括:librewrite.a)

|

| -- liblutil / (该目录下的库文件包括:liblutil.a)


从上图可以看出,OpenLDAP 的库文件比较多,在编译与 OpenLDAP 相关的程序时,如果出现链接错误,报告找不到 OpenLDAP 中的函数时,要注意检查是否包含了必要的库文件路径、是否链接了必要的库文件,特别是像 liblutil.a 这种不常用到的库文件,在链接时很容易被忽视。但有时候就是因为只链接了常用的库文件,未链接其他不常见的库文件导致编译器报错。


原文链接:https://www.f2er.com/bash/391723.html

猜你在找的Bash相关文章