title: Undefined reference to openssl functions when compiling with gcc in Ubuntu 11.10
body: <p>In Ubuntu 11.10 x86_64 I have this this simple test.c file:</p>
  
  <pre><code>#include &lt;openssl/ssl.h&gt;
  
  int main() {
      SSL_library_init();
      return 0;
  }
  </code></pre>
  
  <p>Why does compiling with gcc fail?</p>
  
  <pre><code>$ gcc -lssl -lcrypto test.c
  /tmp/ccqL6lRY.o: In function `main':
  test.c:(.text+0x5): undefined reference to `SSL_library_init'
  collect2: ld returned 1 exit status
  </code></pre>
  
  <p>Compiling with clang works and produces a working executable:</p>
  
  <pre><code>$ clang -lssl -lcrypto test.c
  $ ldd a.out 
  linux-vdso.so.1 =&gt;  (0x00007fffa93e1000)
  libssl.so.1.0.0 =&gt; /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f234a24f000)
  libcrypto.so.1.0.0 =&gt; /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f2349ea0000)
  libc.so.6 =&gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2349b00000)
  libdl.so.2 =&gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f23498fc000)
  libz.so.1 =&gt; /lib/x86_64-linux-gnu/libz.so.1 (0x00007f23496e4000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f234a4c4000
  </code></pre>