openSSL mac未定义的符号

时间:2011-06-22 12:59:54

标签: c macos openssl

我正在开发一个用于MAC的TLSclient,我在MACOSX上有一点构建我的项目(在linux上工作得很好),最特别的是使用openssl库。

这是我的控制台错误,希望你能帮我处理:

gcc   -lpthread  -o *.o /opt//local/var/macports/software/openssl97/0.9.7m_0/opt/local/lib/openssl97/lib/libssl.a /opt//local/var/macports/software/openssl97/0.9.7m_0/opt/local/lib/openssl97/lib/libcrypto.a  -ldl 
Undefined symbols:
  "_SSL_CTX_set_info_callback", referenced from:
      _MTLSServer_Setup in MTLSServer.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [mtls_server] Error 1

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

在OpenSSL 0.9.7中SSL_CTX_set_info_callback是一个宏,您的代码正在尝试链接到一个函数。这可能意味着您没有正确的标题路径。

我对你命令行中的其他事情感到有些困惑:

  • 为什么要静态链接旧版本的OpenSSL 0.9.7。最新版本的Mac OS X包含0.9.8。
  • -o *.o似乎应该是-o something *.o
  • 的错误
  • -lpthread参数应该在libcrypto之后。