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。