Compiling
被 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.0
andlibcrypto.so.1.0.0
。我比較迷茫…這只是一個混亂的版本控制還是發生了什麼?
我怎樣才能知道究竟是什么生產的?我應該相信它嗎?
以防萬一:我的系統是“Linux 4.4.0-116-generic #140-Ubuntu SMP Mon x86_64 GNU/Linux”。
是的,這是正確的,即使軟體包的版本為 1.0.2l,庫的版本也是 1.0.0。這是因為該軟體的所有 1.0.x 版本都實現了相同的 API(具有相同函式簽名/原型的相同函式),因此這些庫的版本應該相同,因為這些庫的使用者可以互換使用這些版本。
庫的版本在原始碼樹中定義。在該定義上方有一條評論,可以進一步解釋它。
我希望這能回答你的問題。