【发布时间】:2016-09-19 21:46:19
【问题描述】:
我已经通过以下步骤成功地为 OSX 构建了一个跨平台的静态库:
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=OFF "-DCMAKE_OSX_ARCHITECTURES=x86_64;i386" ..
cmake --build .
我也大部分成功地将那个库链接到我自己的项目中,但现在在 XCode 5.1.1 中遇到了一系列关于缺少符号的链接器错误:
Undefined symbols for architecture x86_64:
"_SSLClose", referenced from:
_stransport_close in libVAST.a(stransport_stream.c.o)
"_SSLCopyPeerTrust", referenced from:
_stransport_connect in libVAST.a(stransport_stream.c.o)
_stransport_certificate in libVAST.a(stransport_stream.c.o)
"_SSLCreateContext", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLHandshake", referenced from:
_stransport_connect in libVAST.a(stransport_stream.c.o)
"_SSLRead", referenced from:
_stransport_read in libVAST.a(stransport_stream.c.o)
"_SSLSetConnection", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLSetIOFuncs", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLSetPeerDomainName", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLSetProtocolVersionMax", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLSetProtocolVersionMin", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLSetSessionOption", referenced from:
_git_stransport_stream_new in libVAST.a(stransport_stream.c.o)
"_SSLWrite", referenced from:
_stransport_write in libVAST.a(stransport_stream.c.o)
"_SecCertificateCopyData", referenced from:
_stransport_certificate in libVAST.a(stransport_stream.c.o)
"_SecCopyErrorMessageString", referenced from:
_stransport_error in libVAST.a(stransport_stream.c.o)
"_SecTrustEvaluate", referenced from:
_stransport_connect in libVAST.a(stransport_stream.c.o)
" _SecTrustGetCertificateAtIndex", referenced from:
_stransport_certificate in libVAST.a(stransport_stream.c.o)
...
...
一直如此。
我想在某个地方我缺少一个额外的步骤或依赖项,并且我得到了一些提示,鉴于这个 git-hub 线程在 rust 上,它并非完全没有先例,(https://github.com/rust-lang/cargo/issues/2295) 但我不是完全确定如何进行。想法?
【问题讨论】: