linux动态连接库的生成,Linux编译安装openssl和生成系统动态连接库dynamic/shared libraries...

openssl:多用途的命令行工具,各功能分别使用子命令实现

libcrypto:公共加密库(存放了各种加密算法)

libssl:ssl协议的实现

yum -y install perl gcc

wget -4 http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure --shared

make

make install

cp libz.a /usr/local/lib

chmod 644 /usr/local/lib/libz.a

cp libz.so.1.2.8 /usr/local/lib

chmod 755 /usr/local/lib/libz.so.1.2.8

cp zlib.3 /usr/local/share/man/man3

chmod 644 /usr/local/share/man/man3/zlib.3

cp zlib.pc /usr/local/lib/pkgconfig

chmod 644 /usr/local/lib/pkgconfig/zlib.pc

cp zlib.h zconf.h /usr/local/include

chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h

wget -4 --no-check-certificate https://www.openssl.org/source/openssl-1.0.1t.tar.gz

tar -zxvf openssl-1.0.1t.tar.gz

cd openssl-1.0.1t

./config --prefix=/usr shared zlib

make

make install

installing libcrypto.a

installing libssl.a

installing libcrypto.so.1.0.0

installing libssl.so.1.0.0

make[1]: Entering directory `/usr/lib64'

make[2]: Entering directory `/usr/lib64'

make[2]: Leaving directory `/usr/lib64'

make[2]: Entering directory `/usr/lib64'

make[2]: Leaving directory `/usr/lib64'

make[1]: Leaving directory `/usr/lib64'

cp libcrypto.pc /usr/lib64/pkgconfig

chmod 644 /usr/lib64/pkgconfig/libcrypto.pc

cp libssl.pc /usr/lib64/pkgconfig

chmod 644 /usr/lib64/pkgconfig/libssl.pc

cp openssl.pc /usr/lib64/pkgconfig

chmod 644 /usr/lib64/pkgconfig/openssl.pc

另一种config方法

./config --prefix=/usr/local/openssl -fPIC shared zlib

cp -r /usr/local/openssl/include/openssl /usr/include/openssl Include 存放了使用OpenSSL 的库时需要的头文件。

cp -r /usr/local/openssl/lib/* /usr/lib64

这样可以继续编译nginx了

#-fPIC,在 Linux 下动态链接库,“标准” 的做法是编译成位置无关代码(Position Independent Code,PIC),然后链接成一个动态链接库,不加经常也能正常运行,只是创建 .so 的时候会有一个警告。

#ldd命令用于打印程序或者库文件所依赖的共享库列表

ldd $(which nginx)

linux-vdso.so.1 => (0x00007fff079e7000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007fbceb888000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbceb66b000)

libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbceb433000)

libpcre.so.0 => /lib64/libpcre.so.0 (0x00007fbceb206000)

libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007fbceafa2000)

libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007fbceabc2000)

libz.so.1 => /lib64/libz.so.1 (0x00007fbcea9ac000)

libc.so.6 => /lib64/libc.so.6 (0x00007fbcea618000)

/lib64/ld-linux-x86-64.so.2 (0x00007fbceba91000)

libfreebl3.so => /lib64/libfreebl3.so (0x00007fbcea414000)

如果--prefix=/usr 目录是其他目录则需要使用ldconfig(一个动态链接库管理命令),为了让动态链接库为系统所共享

echo "/usr/local/openssl/lib">>/etc/ld.so.conf #非必须

ldconfig -v

ldconfig做的这些东西都与运行程序时有关,跟编译没有关系。

dynamic/shared libraries

/lib /lib64是内核级的

/usr/lib /usr/lib64是系统级的

/usr/local/lib /usr/local/lib64是用户级的

54d571287a03d195231185826d6c0593.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值