title: Undefined symbol using Boost/Python
body: <p>Using Boost 1.63.0, I've coded up the following:<br>
  vectors.cpp<br></p>
  
  <pre><code>/* Boost/Python headers */ 
  #include&lt;boost/python/module.hpp&gt;
  #include&lt;boost/python/def.hpp&gt;
  #include&lt;boost/python/extract.hpp&gt;
  #include&lt;boost/python/numpy.hpp&gt;
  #include&lt;cmath&gt;
  
  using namespace boost::python;
  namespace np = boost::python::numpy;
  
  double eucnorm(np::ndarray axis){
  
    const int n = axis.shape(0);
    double norm = 0.0;
    for(int i = 0; i &lt; n; i++){
      double A = boost::python::extract&lt;double&gt;(axis[i]);
      norm += A*A;
    }
    return sqrt(norm);
  }
  
  BOOST_PYTHON_MODULE(vectors){
    def("eucnorm", eucnorm);
  }
  </code></pre>
  
  <p>I've compiled this using:<br>
  <code>g++ -shared -fpic -I /usr/include/python2.7 -I /foo/bar/boost_1_63_0 -lboost_python -o vectors.so</code></p>
  
  <p>And I get the following error upon import:<br></p>
  
  <pre><code>from vectors import *
  ImportError: ./vectors.so: undefined symbol: _ZN5boost6python9converter21object_manager_traitsINS0_5numpy7ndarrayEE10get_pytypeEv
  </code></pre>
  
  <p>What does this mean, and how do I fix this?</p>