title: Receive "undefined symbol" error when loading library with dlopen
body: <p>I'm writing some code that uses dynamic shared libraries as plugins.</p>
  
  <p>My command line for building the shared libraries looks like:</p>
  
  <pre><code>cc -shared -fPIC -o module.so -g -Wall module.c
  </code></pre>
  
  <p>Within the module, I can call functions that are in any other shared library that has been loaded within the main executable.</p>
  
  <p>However I cannot access (exported) functions that are in the executable itself (I get <code>undefined symbol</code> errors).</p>
  
  <p>My call to <code>dlopen</code> looks like this:</p>
  
  <pre><code>void *handle = dlopen(plugin, RTLD_NOW);
  </code></pre>
  
  <p>Can anyone please advise how my module can call back to my executable, without having to put all of the executable's utility functions into yet another shared library?</p>