在我的应用程序中,我使用boost_python和python3.5.2。都是从Ubuntu14的源代码构建的。在
当我在Ubuntu中使用--with-shared选项从源代码构建python3.5.2时,我得到了libpython3.so(7.6kB)和{}(12MB)。我假设大的是真实的,小的可能是将调用转发到真实接口的东西。在
由于boost_python可能假设客户机与python(https://svn.boost.org/trac/boost/ticket/2615)进行链接,因此我将libpython3.so与我的应用程序链接起来。但当我运行它时,我得到了未解析的符号错误。在
ldd -r myapp或{}都列出了在nm -D libpython3.5m.so中可以找到的所有未解析的python符号。在# ldd -r lib/libboost_python3.so
linux-vdso.so.1 => (0x00007ffe767fb000)
libstdc+.so.6 => /usr/lib/x86_64-linux-gnu/libstdc+.so.6 (0x00007f130a7a3000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f130a58d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f130a1c8000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1309ec2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f130acf4000)
undefined symbol: PyExc_Imp