我的應用程序只使用OpenSSL 0.9.8和更高版本支持的函數,但我在安裝了1.0.0庫的系統上(使用-lcrypto)編譯它,並且該應用程序需要libcrypto .so.1.0.0或更高版本在安裝時。鏈接到不同版本的SSL共享庫
OpenSSL顯然將整個版本級別「libcrypto.so.1.0.0」編譯到庫的SONAME中,所以我的應用程序將不會運行,除非這個庫的特定版本存在。我知道它不能在僅安裝了0.9.8的系統上運行,但如果安裝了1.0.1會怎麼樣?
對於我使用每隔一個共享庫(-lpthreads,-lncurses,..),LDD顯示SONAME爲 「libxxx.so.N」,所以我只需要安裝版本N。 OpenSSL是我知道的唯一依賴於特定版本級別(VRM)的庫,所以我擔心如果安裝的庫晚於libcrypto.so.1.0.0(或庫更新到更新的級別)。
有沒有辦法編譯我的應用程序使用「libcrypto.so或」libcrypto.so.1「而不管它鏈接到什麼版本?爲什麼OpenSSL在SONAME中使用完整版本時沒有其他庫I 「M知道做到這一點?
歡迎來到地獄的奇妙世界.... –