构建ClamAV:OpenSSL安装缺少X509_VERIFY_PARAM函数,未定义符号_X509_VERIFY_PARAM_new in ld

时间:2016-12-13 12:36:05

标签: c bash macos openssl clam

我试图在带有OS X 10.4.11 Tiger的Mac PPC Powerbook上构建ClamAV 99.2。无论我尝试过各种标志和配置参数,ClamAV配置脚本总是以下列行停止:

checking for EVP_EncryptInit in -lcrypto... yes
checking for X509_VERIFY_PARAM_new in -lssl... no
configure: error: Your OpenSSL installation is missing the X509_VERIFY_PARAM function. 
                  Please upgrade to a more recent version of OpenSSL.

以下是我采取的步骤,主要来自非常有用的http://www.gctv.ne.jp/~yokota/clamav/(在各种Mac OS X版本中描述了ClamAV安装过程):

  • 安装了最新的llvm-gcc (LLVM-gcc4.2-2.3-PPC-darwin8.11.0)
  • 使用Macports安装bzip2
  • 已安装pcre2-10.22
  • 已安装openssl-1.0.2j

$ PATH(用于增加可读性的新行)

/usr/local/ssl/bin:
/usr/local/llvm-gcc4.2-2.3-ppc-darwin8.11.0/bin:
/opt/local/bin:
/opt/local/sbin:
/bin:
/sbin:
/usr/bin:
/usr/sbin

我阅读了openssl提供的所有文档和说明,以了解系统特定的内容,包括

基本上,openssl既安装了也没有安装,无论是否设置特殊配置参数,如无共享no-asm no-ssl2 no-ssl3。因为我做了&& make test和所有测试(包括x509-stuff)总是通过我相信openssl已完全安装并正在使用中,如

所示
$ openssl version 
OpenSSL 1.0.2j  26 Sep 2016

$ which openssl
/usr/local/ssl/bin/openssl

所以,显然Clamav 要么在错误的地方寻找错误的问题,要么依赖于我看不到的东西。或者甚至可能在旧的原始openssl系统中存在依赖关系?如果是这样,我该怎么走?

配置ClamAV已经完成了以下命令各部分的组合,最后完成了所有这些命令:

CFLAGS="-O3"
CXXFLAGS="${CFLAGS}"
CPPFLAGS="-I/usr/local/include -I/usr/include -I/usr/local/pcre2/include -I/usr/local/ssl/include -DSSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION=0x0010" 
LDFLAGS="-L/opt/local/lib -L/usr/local/lib -L/usr/lib -L/usr/local/ssl/lib"
OPENSSL_INCLUDE_DIR=/usr/local/ssl/include/openssl
DEP_OPENSSL_INCLUDE=/usr/local/ssl/include/openssl
OPENSSL_LIB_DIR=/usr/local/ssl/lib
OPENSSL_ROOT_DIR=/usr/local/ssl
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
C_INCLUDE_PATH=/usr/local/ssl/include/openssl
CC=/usr/local/llvm-gcc4.2-2.3-ppc-darwin8.11.0/bin/powerpc-apple-darwin8-gcc-4.2.1
./configure --with-openssl=/usr/local/ssl \
--with-ssl=/usr/local/ssl --with-pcre=/usr/local/pcre2 --enable-llvm \
--prefix=/usr/local/clamXav --build=powerpc-apple-darwin`uname -r` 

最后, config.log 告诉我以下内容:

configure:18017: checking for X509_VERIFY_PARAM_new in -lssl
configure:18042: /usr/local/llvm-gcc4.2-2.3-ppc-darwin8.11.0/bin/powerpc-apple-darwin8-gcc-4.2.1 -o conftest -I/usr/local/ssl/include -I/usr/local/include -I/usr/include -I/usr/local/pcre2/include -I/usr/local/ssl/include -L/usr/local/ssl/lib -lssl -lcrypto -lz conftest.c -lssl -lcrypto -lz  >&5
/usr/bin/ld: Undefined symbols:
_X509_VERIFY_PARAM_new
collect2: ld returned 1 exit status
configure:18042: $? = 1
configure: failed program was:
| /* confdefs.h */

有一个相关的问题 unix.stackexchange.com/questions/274126/openssl-installation-is-missing-the-x509-verify-param-function 但OP从未提供过他被要求提供的信息以及操作系统的不同,这就是我在这里问的原因。

那么如何定义缺失的符号呢?有人可以给我一个提示吗?非常感谢。

0 个答案:

没有答案