天天看點

libssh2編譯錯誤(configure error: cannot find OpenSSL or Libgcrypt)解決方法

如果按标準的configure執行:

./configure --prefix=/data/users/mooon/third-party/libssh2 --with-openssl --with-libssl-prefix=/data/users/mooon/third-party/openssl --without-libgcrypt-prefix

得到如下錯誤時:

checking for shared library run path origin... done

checking for libssl... no

checking for libgcrypt... no

configure: error: cannot find OpenSSL or Libgcrypt,

try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH

請改成如下:

./configure --prefix=/data/users/mooon/third-party/libssh2 CPPFLAGS="-I/data/users/mooon/third-party/openssl/include" LDFLAGS="-L/data/users/mooon/third-party/openssl/lib"

上述方法為何可以解決問題:

道理非常簡單,就是滿足它的需求,報的是找不到OpenSSL,既然--with-libssl-prefix沒生效,那麼就直接通過CPPFLAGS和LDFLAGS來指定,當執行“./configure --help”可以看到這個支援的。甚至可以通過檢視config.log日志檔案來了解這方面的資訊,以後遇到類似的問題,都可以采取類似的辦法,軟的不行來硬的。

遇到這個錯誤的一個重要原因是:OpenSSL沒有安裝在标準的目錄下,如果以./configure不帶--prefix安裝OpenSSL,則可能不會出現這個問題。

繼續閱讀