Увеличить python :: неопределенная ошибка символа для вектора даже после использования vector_indexing_suite - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок в использовании boost python и борюсь со следующим кодом, я пытаюсь передать vector в качестве аргумента функции gen_fibonacci (), но получаю ошибку: ImportError: ./Strat.so: undefined symbol: _ZN5Strat13gen_fibonacciERSt6vectorIlSaIlEEii при импорте этого модуля из python shell.

namespace python = boost::python;
class Strat
{
    public:
    long gen_fibonacci(std::vector<long> &a,int in,int n);
};


BOOST_PYTHON_MODULE(Strat)
{

    python::class_<std::vector<long> >("long_vector")
        .def(python::vector_indexing_suite<std::vector<long> >())
    ;
    python::class_<Strat>("Strat")
        .def("gen_fibonacci", &Strat::gen_fibonacci)
    ;
}

compiling ::

g++ -I /usr/include/python2.7 -fpic -c -o Strat.o strat_helper.cpp
g++ -o Strat.so -shared Strat.o -L/usr/lib/x86_64-linux-gnu -lboost_python-py27 -lpython2.7
...