Package: libboost-python Version: 1.62.0+dfsg-2 This fails with libboost-python 1.62, but works with 1.61:
% g++ -I/usr/include/python3.5m/ conftest.cc -lboost_python-py35 -lpython3.5m /tmp/cc6JvhrE.o: In function `PyInit_empty': conftest.cc:(.text+0x8a): undefined reference to `boost::python::detail::init_module(PyModuleDef&, void (*)())' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_Size' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicodeUCS4_FromEncodedObject' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyFile_FromString' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_Type' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyInt_Type' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_FromString' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicodeUCS4_AsWideChar' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_FromStringAndSize' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `Py_InitModule4_64' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_FromFormat' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Divide' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceDivide' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyInt_AsLong' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_InternFromString' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyClass_Type' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyString_AsString' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyInt_FromLong' /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyFile_AsFile' collect2: error: ld returned 1 exit status The Debian version of `libboost_python-py35.so.1.62.0` does indeed need these symbols, but they are not exported in Python 3 (they are part of the Python 2 C API): $ readelf --dyn-syms /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.62.0 | grep PyInt_Type 54: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND PyInt_Type $ readelf --dyn-syms /usr/lib/x86_64-linux-gnu/libpython3.5m.so | grep PyInt_Type $ `libboost_python-py35.so.1.61.0` didn't need those, and other distributions packages don't either, so I think this is a Debian bug.