關於/usr/bin/ld: cannot find -lcrypto 的錯誤
阿新 • • 發佈:2019-01-24
Linux下 build code 時,要做 -lssl, -lcrypto 的連結,出現類似下面的錯誤:
/usr/bin/ld: cannot find -lcrypto
/usr/bin/ld: cannot find -lssl
原因是沒有找到 libssl.so
yum info openssl,發現openssl 1.0.0已經安裝了
ll /usr/lib64/libssl*,得到
-rwxr-xr-x. 1 root root 242112 Jul 17 2012 /usr/lib64/libssl3.so
lrwxrwxrwx. 1 root root 15 Nov 30 01:31 /usr/lib64/libssl.so.10 -> libssl.so.1.0.0
-rwxr-xr-x. 1 root root 372488 Aug 23 2012 /usr/lib64/libssl.so.1.0.0
根本原因是,雖然有libssl的動態庫檔案,但沒有檔名為 libssl.so 的檔案,ld找不到它
於是新增軟連結:
ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so
ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so
然後再重新build時,問題就沒有了。
注意,這裡不需要在/etc/ld.so.conf檔案中加入新的一行 "/usr/lib64",因為這個路徑預設會被ld訪問到