openSSL mac未定义符号

openSSL mac未定义符号,c,macos,openssl,C,Macos,Openssl,我正在为MAC开发一个TLSclient,我正在MACOSX上构建我的项目(在linux上运行得非常好),特别是在使用openssl libs方面 以下是我的控制台错误,希望您能帮助我处理: 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/openss

我正在为MAC开发一个TLSclient,我正在MACOSX上构建我的项目(在linux上运行得非常好),特别是在使用openssl libs方面

以下是我的控制台错误,希望您能帮助我处理:

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

感谢您在OpenSSL 0.9.7
SSL\u CTX\u set\u info\u回调中的帮助

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

我对命令行中的其他内容感到有点困惑:

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

他正在使用GCC调用对象文件上的
ld
,以链接它们。他不是用那个命令编译的。
/opt//local/var/macports/software/openssl97/0.9.7m_0/opt/local/lib/openssl97/lib/libssl.a
看起来真奇怪。你确定这些道路吗?对我来说,
find/opt/local/-inamelibssl.a
的结果是
/opt/local//lib/libssl.a