python-mapnik icon indicating copy to clipboard operation
python-mapnik copied to clipboard

Boost 1.61 binding problem

Open sw897 opened this issue 9 years ago • 2 comments

I build binding on windows using msvc2015. All the dependences were local built using mapbox/windows-builds. When building python binding, i get the error:

2>mapnik_datasource.obj : error LNK2019: 无法解析的外部符号 "class mapnik::datasource const volatile * __cdecl boost::get_pointer(class mapnik::datasource const volatile *)" (??$get_pointer@$$CDVdatasource@mapnik@@@boost@@YAPEDVdatasource@mapnik@@PEDV12@@Z),该符号在函数 "public: static struct _object * __cdecl boost::python::objects::make_instance_impl<class mapnik::datasource,struct boost::python::objects::pointer_holder<class std::shared_ptr,class mapnik::datasource>,struct boost::python::objects::make_ptr_instance<class mapnik::datasource,struct boost::python::objects::pointer_holder<class std::shared_ptr,class mapnik::datasource> > >::execute<class std::shared_ptr >(class std::shared_ptr &)" (??$execute@V?$shared_ptr@Vdatasource@mapnik@@@std@@@?$make_instance_impl@Vdatasource@mapnik@@U?$pointer_holder@V?$shared_ptr@Vdatasource@mapnik@@@std@@Vdatasource@mapnik@@@objects@python@boost@@U?$make_ptr_instance@Vdatasource@mapnik@@U?$pointer_holder@V?$shared_ptr@Vdatasource@mapnik@@@std@@Vdatasource@mapnik@@@objects@python@boost@@@456@@objects@python@boost@@SAPEAU_object@@AEAV?$shared_ptr@Vdatasource@mapnik@@@std@@@Z) 中被引用 2>mapnik_datasource.obj : error LNK2019: 无法解析的外部符号 "class mapnik::memory_datasource const volatile * __cdecl boost::get_pointer(class mapnik::memory_datasource const volatile *)" (??$get_pointer@$$CDVmemory_datasource@mapnik@@@boost@@YAPEDVmemory_datasource@mapnik@@PEDV12@@Z),该符号在函数 "public: static struct _object * __cdecl boost::python::objects::make_instance_impl<class mapnik::memory_datasource,struct boost::python::objects::pointer_holder<class std::shared_ptr,class mapnik::memory_datasource>,struct boost::python::objects::make_ptr_instance<class mapnik::memory_datasource,struct boost::python::objects::pointer_holder<class std::shared_ptr,class mapnik::memory_datasource> > >::execute<class std::shared_ptr >(class std::shared_ptr &)" (??$execute@V?$shared_ptr@Vmemory_datasource@mapnik@@@std@@@?$make_instance_impl@Vmemory_datasource@mapnik@@U?$pointer_holder@V?$shared_ptr@Vmemory_datasource@mapnik@@@std@@Vmemory_datasource@mapnik@@@objects@python@boost@@U?$make_ptr_instance@Vmemory_datasource@mapnik@@U?$pointer_holder@V?$shared_ptr@Vmemory_datasource@mapnik@@@std@@Vmemory_datasource@mapnik@@@objects@python@boost@@@456@@objects@python@boost@@SAPEAU_object@@AEAV?$shared_ptr@Vmemory_datasource@mapnik@@@std@@@Z) 中被引用 2>mapnik_featureset.obj : error LNK2019: 无法解析的外部符号 "struct mapnik::Featureset const volatile * __cdecl boost::get_pointer<struct mapnik::Featureset const volatile >(struct mapnik::Featureset const volatile *)" (??$get_pointer@$$CDUFeatureset@mapnik@@@boost@@YAPEDUFeatureset@mapnik@@PEDU12@@Z),该符号在函数 "public: static struct _object * __cdecl boost::python::objects::make_instance_impl<struct mapnik::Featureset,struct boost::python::objects::pointer_holder<class std::shared_ptr<struct mapnik::Featureset>,struct mapnik::Featureset>,struct boost::python::objects::make_ptr_instance<struct mapnik::Featureset,struct boost::python::objects::pointer_holder<class std::shared_ptr<struct mapnik::Featureset>,struct mapnik::Featureset> > >::execute<class std::shared_ptr<struct mapnik::Featureset> >(class std::shared_ptr<struct mapnik::Featureset> &)" (??$execute@V?$shared_ptr@UFeatureset@mapnik@@@std@@@?$make_instance_impl@UFeatureset@mapnik@@U?$pointer_holder@V?$shared_ptr@UFeatureset@mapnik@@@std@@UFeatureset@mapnik@@@objects@python@boost@@U?$make_ptr_instance@UFeatureset@mapnik@@U?$pointer_holder@V?$shared_ptr@UFeatureset@mapnik@@@std@@UFeatureset@mapnik@@@objects@python@boost@@@456@@objects@python@boost@@SAPEAU_object@@AEAV?$shared_ptr@UFeatureset@mapnik@@@std@@@Z) 中被引用 2>mapnik_font_engine.obj : error LNK2019: 无法解析的外部符号 "class mapnik::freetype_engine const volatile * __cdecl boost::get_pointer(class mapnik::freetype_engine const volatile *)" (??$get_pointer@$$CDVfreetype_engine@mapnik@@@boost@@YAPEDVfreetype_engine@mapnik@@PEDV12@@Z),该符号在函数 "public: static struct _object * __cdecl boost::python::objects::make_instance_impl<class mapnik::freetype_engine,struct boost::python::objects::pointer_holder<class mapnik::freetype_engine *,class mapnik::freetype_engine>,struct boost::python::objects::make_ptr_instance<class mapnik::freetype_engine,struct boost::python::objects::pointer_holder<class mapnik::freetype_engine *,class mapnik::freetype_engine> > >::execute<class mapnik::freetype_engine *>(class mapnik::freetype_engine * &)" (??$execute@PEAVfreetype_engine@mapnik@@@?$make_instance_impl@Vfreetype_engine@mapnik@@U?$pointer_holder@PEAVfreetype_engine@mapnik@@V12@@objects@python@boost@@U?$make_ptr_instance@Vfreetype_engine@mapnik@@U?$pointer_holder@PEAVfreetype_engine@mapnik@@V12@@objects@python@boost@@@456@@objects@python@boost@@SAPEAU_object@@AEAPEAVfreetype_engine@mapnik@@@Z) 中被引用

mapnik version 3.0.12 python-mapnik trunk boost 1.61 python 2.7.12

can you help me, thanks a lot.

sw897 avatar Sep 27 '16 13:09 sw897

请问你的问题解决了吗?

shwzhang1990 avatar Dec 19 '17 15:12 shwzhang1990

Maybe try to build python-mapnik from v3.0.x branch. This branch keeps compatibility with 3.0.x versions of Mapnik.

talaj avatar Dec 20 '17 11:12 talaj