title: Poco C++ Static Library (Crypto and SSL) Linker Error on OS-X
body: <p>I have compiled Poco as static library to be used in an XCode6.1.1 Project. However I see linking error for libraries: libPocoCrypto.a and libPocoNetSSL.a:</p>
  
  <p>I have already verified that these libraries are built for x86_64 architecture:</p>
  
  <pre class="lang-none prettyprint-override"><code>input file libPocoCrypto.a is not a fat file
  Non-fat file: libPocoCrypto.a is architecture: x86_64
  </code></pre>
  
  <p>What could be wrong? Any help would be appreciable?</p>
  
  <p>Linker Error:</p>
  
  <pre class="lang-none prettyprint-override"><code>Undefined symbols for architecture x86_64:
    "_ASN1_STRING_data", referenced from:
        Poco::Crypto::X509Certificate::extractNames(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;&amp;, std::__1::set&lt;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;, std::__1::less&lt;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; &gt;, std::__1::allocator&lt;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; &gt; &gt;&amp;) const in libPocoCryptod.a(X509Certificate.o)
    "_ASN1_STRING_length", referenced from:
        Poco::Crypto::X509Certificate::extractNames(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;&amp;, std::__1::set&lt;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;, std::__1::less&lt;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; &gt;, std::__1::allocator&lt;std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; &gt; &gt;&amp;) const in libPocoCryptod.a(X509Certificate.o)
    "_BIO_ctrl", referenced from:
        Poco::Crypto::X509Certificate::load(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::save(std::__1::basic_ostream&lt;char, std::__1::char_traits&lt;char&gt; &gt;&amp;) const in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::save(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) const in libPocoCryptod.a(X509Certificate.o)
    "_BIO_free", referenced from:
        Poco::Net::SecureSocketImpl::acceptSSL() in libPocoNetSSLd.a(SecureSocketImpl.o)
        Poco::Net::SecureSocketImpl::connectSSL(bool) in libPocoNetSSLd.a(SecureSocketImpl.o)
        Poco::Crypto::X509Certificate::load(std::__1::basic_istream&lt;char, std::__1::char_traits&lt;char&gt; &gt;&amp;) in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::load(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::save(std::__1::basic_ostream&lt;char, std::__1::char_traits&lt;char&gt; &gt;&amp;) const in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::save(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) const in libPocoCryptod.a(X509Certificate.o)
    "_BIO_int_ctrl", referenced from:
        Poco::Net::SecureSocketImpl::acceptSSL() in libPocoNetSSLd.a(SecureSocketImpl.o)
        Poco::Net::SecureSocketImpl::connectSSL(bool) in libPocoNetSSLd.a(SecureSocketImpl.o)
    "_BIO_new", referenced from:
        Poco::Net::SecureSocketImpl::acceptSSL() in libPocoNetSSLd.a(SecureSocketImpl.o)
        Poco::Net::SecureSocketImpl::connectSSL(bool) in libPocoNetSSLd.a(SecureSocketImpl.o)
        Poco::Crypto::X509Certificate::load(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::save(std::__1::basic_ostream&lt;char, std::__1::char_traits&lt;char&gt; &gt;&amp;) const in libPocoCryptod.a(X509Certificate.o)
        Poco::Crypto::X509Certificate::save(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) const in libPocoCryptod.a(X509Certificate.o)
    "_BIO_new_mem_buf", referenced from:
        Poco::Crypto::X509Certificate::load(std::__1::basic_istream&lt;char, std::__1::char_traits&lt;char&gt; &gt;&amp;) in libPocoCryptod.a(X509Certificate.o)
    "_BIO_s_file", referenced from:
        Poco::Crypto::X509Certificate::load(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) in libPocoCryptod.a(X509Certificate.o)
    "_SSL_CTX_use_PrivateKey_file", referenced from:
        Poco::Net::Context::Context(Poco::Net::Context::Usage, std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;, std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;, std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;, Poco::Net::Context::VerificationMode, int, bool, std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) in libPocoNetSSLd.a(Context.o)
  </code></pre>