Macos “未定义的符号”_TLSv1“客户方法”;在Mac os 10.8上编译httpd时适用于x86_64

Macos “未定义的符号”_TLSv1“客户方法”;在Mac os 10.8上编译httpd时适用于x86_64,macos,apache,compilation,clang,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/us

下面是详细的错误消息

$ ./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)

APR和APR util是必需的依赖项

所以-在Mac上构建httpd之前

端口安装

端口安装apr util


解决了这个问题。

此外,您可能需要将“OPENSSL\u ROOT\u DIR”变量设置为“/opt/local”。
执行cmake时,您可以通过将“-DOPENSSL\u ROOT\u DIR=/opt/local”作为命令行参数来实现这一点。

请提供link命令;-)添加了libtool命令。我刚刚安装了apr和apr util,但这并没有解决错误。可能是因为我用brew?安装了它们,需要更详细的错误信息。brew安装后,路径可能未设置为包含APR和UTIL。