在Mac OS 10.8上编译httpd时,x86_64的未定义符号“_TLSv1_1_client_method”

时间:2013-12-31 07:07:58

标签: macos apache compilation clang

详细错误消息如下。

$ ./configure
$ make

然后......

/usr/share/apr-1/build-1/libtool --silent --mode=link /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc     -lssl -lcrypto -lpthread  \
         -o ab  ab.lo      -L/usr/lib -R/usr/lib -laprutil-1 -lexpat -liconv -lsqlite3 -lldap -llber -llber -L/usr/lib -R/usr/lib -lapr-1 -lpthread 

Undefined symbols for architecture x86_64:

"_TLSv1_1_client_method", referenced from:
_main in ab.o
"_TLSv1_2_client_method", referenced from:
_main in ab.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2 个答案:

答案 0 :(得分:3)

APR和apr-util是必需的依赖项。

所以 - 在Mac上构建httpd之前,

端口安装APR

port install apr-util

解决了这个问题。

答案 1 :(得分:1)

此外,您可能需要设置' OPENSSL_ROOT_DIR'变量为' / opt / local'。 您可以通过提供' -DOPENSSL_ROOT_DIR = / opt / local'执行cmake时作为命令行参数。