[C++-sig] undefined symbol: _ZTIN5boost6python15instance_holderE

Mario Lang mlang at delysid.org
Tue May 19 14:54:15 CEST 2015


David Aldrich <David.Aldrich at EMEA.NEC.COM> writes:

> I have an application that uses Boost Python. It links and runs fine on Centos 5 systems but fails on an Ubuntu 14.04 LTS system.
>
> The code that uses Boost Python is compiled using:
>
> g++ -c -Wall -m64 -DPYTHON_ENABLE -I../Kernel -I/usr/include/python2.7 -I/usr/include/ -O3 main.cpp -o _gnuRelease/main.o
>
> and linked into a static library using:
>
> g++ -o _gnuRelease/mylib -Wl,-whole-archive,-export-dynamic ../Kernel/_gnuRelease/libKernel.a  -L/usr/lib/x86_64-linux-gnu  -lboost_python-py27 -lpython2.7 -Wl,--no-whole-archive -ldl
>
> When the library is linked to my main program and run I see error:
>
> undefined symbol: _ZTIN5boost6python15instance_holderE ( typeinfo for boost::python::instance_holder )
>
> Please can someone suggest how to fix this?

Does your main program link with boost_python?
You didn't paste the link command of main, which would have been helpful
here.

Also, if you link with boost_python, does it match the Python version in
use (2 vs 3)?

-- 
CYa,
  ⡍⠁⠗⠊⠕


More information about the Cplusplus-sig mailing list