我想鏈接我的代碼與共享庫(「libX.so」),這取決於libcrypto.so。我安裝了libcrypto.so.1.0.0,但它似乎特別要求libcrypto.so.0.9.8。有沒有辦法讓它鏈接到1.0.0?我不能在我的系統(archlinux)上安裝0.9.8而不打破其他軟件包。未定義引用'[email protected]_0.9.8'
/usr/bin/ld: warning: libcrypto.so.0.9.8, needed by /usr/local/lib/libX.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libX.so: undefined reference to `[email protected]_0.9.8'
...
編輯:
我也許應該補充更多的信息。我試過編譯openssl 0.9.8並安裝到前綴/ usr/local。但是,即使它似乎找到了這個庫,有建築時仍然錯誤:
/usr/local/lib/libX.so: undefined reference to `[email protected]_0.9.8'
...
libcrypto似乎來定義的:
$ nm /usr/local/ssl/lib/libcrypto.so.0.9.8 | grep SHA512
000000000006f9b0 T SHA512
...
我使用下面的腳本來編譯:
export LD_LIBRARY_PATH+=:/usr/local/ssl/lib
gcc -I/usr/local/include/ test.c -o test -lX
這是LDD對libx中的輸出:
$ ldd /usr/local/lib/libX.so
/usr/local/lib/libX.so: /usr/local/ssl/lib/libcrypto.so.0.9.8: no version information available (required by /usr/local/lib/libX.so)
libssl.so.0.9.8 => /usr/local/ssl/lib/libssl.so.0.9.8 (0x00007f9c4e329000)
libcrypto.so.0.9.8 => /usr/local/ssl/lib/libcrypto.so.0.9.8 (0x00007f9c4df99000)
...