尽管安装了libssl-dev,但是无法使用SSL构建Postgres

时间:2019-05-16 16:06:28

标签: ubuntu openssl cross-compiling gnu-make configure

我目前正在尝试自己构建一个Postgres版本,但是SSL支持方面存在一些问题。

我使用(针对Windows的交叉编译)配置项目

./configure --host=x86_64-w64-mingw32 --with-openssl --prefix=/home/fuchs/postgres-bin-9.6.12

但是我得到一个错误

checking for library containing gethostbyname_r... no
checking for library containing shmget... no
checking for inflate in -lz... yes
checking for library containing CRYPTO_new_ex_data... no
configure: error: library 'eay32' or 'crypto' is required for OpenSSL

我在互联网上搜索了一个解决方案,发现安装libssl-dev应该可以解决问题(似乎对某些人有所帮助)。我检查并已经安装了libssl-dev。 由于该错误实际上并未提及SSL,因此我搜索了eay32crypto之类的库,并发现了一些已安装的,名为libcrypto++-dev和类似包的软件包,但据我了解,libcrypto应该是其中的一部分ssl库的内容。

我检查了configure.in的错误原因并找到了

if test "$with_openssl" = yes ; then
  dnl Order matters!
  if test "$PORTNAME" != "win32"; then
     AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
     AC_CHECK_LIB(ssl,    SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
  else
     AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])])
     AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])])
  fi

不幸的是,我几乎没有make,autoconf和这些构建工具的经验,但是据我了解,它只是在试图找到库ssl和crypto但不能。

所以我尝试显式添加include和lib目录

/configure --host=x86_64-w64-mingw32 --with-openssl --with-includes=/usr/include/openssl/ --with-libraries=/usr/lib/x86_64-linux-gnu/ PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/ --prefix=/home/fuchs/postgres-bin-9.6.12

但是它并没有改变任何东西,现在我没有主意了。我使用的是Kubuntu 18.04,几乎是全新安装,并尝试构建Postgres 9.6.12。

0 个答案:

没有答案