Dynamically link opennurbs

Hi,

I would like to create a dynamic lib to later include it in my rhino plugin project.
I first wanted to statically link opennurbs but the “__declspec(dllexport)” requires a dll interface of opennurbs classes.

I can build the opennurbs_public solution from vs2017 with the correct configuration, but I still get linking errors such as :

Error LNK2019 unresolved external symbol “class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> > __cdecl on::intersection<class on::domain3d::GenericLine,class on::domain3d::GenericLine>(class boost::shared_ptr,class boost::shared_ptr,class std::list<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> >,class std::allocator<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> > > > &,class std::list<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> >,class std::allocator<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> > > > &)” (??$intersection@VGenericLine@domain3d@on@@V123@@on@@YA?AV?$shared_ptr@V?$IntersectableVariety@$00X@domain3d@on@@@boost@@V?$shared_ptr@VGenericLine@domain3d@on@@@2@0AEAV?$list@V?$shared_ptr@V?$IntersectableVariety@$00X@domain3d@on@@@boost@@V?$allocator@V?$shared_ptr@V?$IntersectableVariety@$00X@domain3d@on@@@boost@@@std@@@std@@1@Z) referenced in function "public: virtual class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> > _cdecl on::intersection::C_Association_B<class on::domain3d::GenericLine,class on::domain3d::GenericLine,struct boost::integral_constant<bool,1> >::intersection(class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> >,class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> >,class std::list<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> >,class std::allocator<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> > > > &,class std::list<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> >,class std::allocator<class boost::shared_ptr<class on::domain3d::IntersectableVariety<1,void> > > > &)const " (?intersection@?$C_Association_B@VGenericLine@domain3d@on@@V123@U?$integral_constant@N$00@boost@@@intersection@on@@UEBA?AV?$shared_ptr@V?$IntersectableVariety@$00X@domain3d@on@@@boost@@V45@0AEAV?$list@V?$shared_ptr@V?$IntersectableVariety@$00X@domain3d@on@@@boost@@V?$allocator@V?$shared_ptr@V?$IntersectableVariety@$00X@domain3d@on@@@boost@@@std@@@std@@1@Z) on C:\Users\N\source\repos\src\RhinoPiping\on\GenericLine.obj 1

Any ideas of what I’m doing wrong ?

Thanks

HI @boekinn,

OpenNURBS does not use Boost. Perhaps you are missing this or another library?

– Dale

Hi Dale and thanks for your reply.

I should have said that I am using both Boost and OpenNurbs in my project.
As I already compiled several dll using Boost, I assumed that my problem was related to openNurbs instead. I will check for Boost anyway.