Вот класс на С++:
#ifndef NPC_H_
#define NPC_H_
class WorldObject{}; // абстрактный игровой объект
class Npc : public WorldObject
{
public:
Npc();
void setId(int id);
int getId();
private:
int id;
};
#endif /* NPC_H_ */
#include "boost/python.hpp"
#include "Npc.h"
namespace bp = boost::python;
BOOST_PYTHON_MODULE(Npc){
bp::class_< WorldObject >( "WorldObject" );
bp::class_< Npc, bp::bases< WorldObject > >( "Npc", bp::init< >() )
.def(
"getId"
, (int ( ::Npc::* )( ) )( &::Npc::getId ) )
.def(
"setId"
, (void ( ::Npc::* )( int ) )( &::Npc::setId )
, ( bp::arg("id") ) );
}
Гуглил эту ошибку, но все решения сводятся к тому, что имя модуля не совпадало в паре мест. У меня везде все совпадает: и в сгенерированном коде и в jamroot файле и имя файла Npc.so такое же, но все равно та же ошибка. Такое ощущение, что я не вижу какой-то глупой опечатки. Покажите, пожалуйста, в чем ошибка?