对 openssl make 感到困惑

对 openssl make 感到困惑

我需要生成libssl*libcrypto*二进制文件以在不同的系统上使用。我写了一个简单的脚本来做这件事

#!/bin/bash

set -evx

OPENSSL_VERSION="1.0.2l"
TARGET=openssl-linux64

/bin/rm -fr $TARGET
curl -O -L http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
mv openssl-$OPENSSL_VERSION $TARGET
cd $TARGET
./Configure linux-x86_64 -shared
make

一切似乎都正常,最终我得到了两个库。不幸的是,它们被称为libssl.so.1.0.0libcrypto.so.1.0.0。我比较困惑...

这只是一个混乱的版本控制还是发生了什么?

我怎样才能知道到底生产了什么?我应该相信它吗?

如果重要的话:我的系统是“Linux 4.4.0-116-generic #140-Ubuntu SMP Mon x86_64 GNU/Linux”。

答案1

是的,这是正确的,即使软件包的版本为 1.0.2l,库也将具有版本 1.0.0。这是因为该软件的所有版本 1.0.x 都实现相同的 API(具有相同函数签名/原型的相同函数),因此这些库的版本应该相同,因为这些库的用户可以互换使用这些版本。

库的版本已定义这里在源树中。该定义上方有一条评论进一步解释了它。

我希望这能回答你的问题。

相关内容