Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Win 32 Build #3

Open
ngmip opened this issue Jan 17, 2013 · 9 comments
Open

Win 32 Build #3

ngmip opened this issue Jan 17, 2013 · 9 comments

Comments

@ngmip
Copy link

ngmip commented Jan 17, 2013

There are no instruction to build the mapnik-jni.dll for win 32.

I am trying to do it but I'm facing some errors.

Here are the steps I followed, this can be a base for a further complete build procedure under windows.

Environment

  • windows7 pro 64bits
  • MS VC++ 2010 Express installed
  • mapnik dependencies
    • mapnik-packaging master repository (cloned in E:_work\mapnik-2.1\mapnik-packaging)
    • dependencies build following the building_mapnik_dependencies.md
    • dependencies are in C:\dev2
  • mapnik
    • mapnik master repository cloned in C:\dev2\mapnik
    • mapnik build using /mapnik-packaging/windows/build_mapnik.bat
    • output files are in C:\mapnik-2.1
    • mapnik.lib file is in E:_WORK\mapnik-2.1\mapnik-packaging\windows\build\src\msvc-10.0\release\threading-multi
  • mapnik-jni
    • mapnik-jni master repository cloned in E:_WORK\mapnik-2.1\mapnik-jni

Build steps

I have been using MS VC++ 2010 through it's GUI (not the command line)
It would be nice to have a command line for automated build though.

  • Open Visual studio
  • create a new empty project "mapnik-jni"
  • under the project right-click the "source folder" and add the existing mapnikjni.cpp file (/mapnik-jni/csrc/mapnikjni.cpp) and only this file
  • right-click the project and select properties
    • be sure to modify and use the " release " build configuration and not the " debug "

    • add include directories
      (C/C++ -> General -> other Include directories)

      add the following : E:\_WORK\mapnik-2.1\mapnik-jni\csrc;E:\Java32\jdk1.7.0_10\include\win32;E:\Java32\jdk1.7.0_10\include;C:\mapnik-2.1\include;C:\mapnik-2.1\include\mapnik\agg;C:\dev2\boost-49-vc100\include\boost-1_49;C:\dev2\freetype\include;C:\dev2\icu\include;E:\_WORK\mapnik-2.1\mapnik-packaging\windows\ltdl;C:\dev2\proj\src;

    • add preprocessor instructions
      (C/C++ -> preprocessor -> preprocessor definitions)

      set the value to the following : MAPNIK_THREAD_SAFE;HAVE_LIBXML2;HAVE_JPEG;HAVE_CAIROWIN32;NDEBUG;_WINDOWS;_USRDLL;MAPNIKJNI_EXPORTS;_WINDLL;_UNICODE;UNICODE

    • add .lib directories
      (Linker -> General -> Additional library directories)

      add the following : C:\dev2\boost-49-vc100\lib;C:\dev2\icu\lib;E:\_WORK\mapnik-2.1\mapnik-packaging\windows\build\src\msvc-10.0\release\threading-multi

    • add libraries
      (linker -> input -> additional dependencies)

      add the following :
      icuuc.lib;mapnik.lib

  • Right-clic the project and click 'build'

Compilation error

I had this small compilation error :

e:\_work\mapnik-2.1\mapnik-jni\csrc\class_featureset.cpp(168): error C2664: 'JNIEnv_::NewString' : cannot convert parameter 1 de 'const UChar *' in 'const jchar *'
      Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

I fixed this by editing the file class_featureset.cpp

diff --git a/csrc/class_featureset.cpp b/csrc/class_featureset.cpp
index 4fdb2b4..f84ffd7 100644
--- a/csrc/class_featureset.cpp
+++ b/csrc/class_featureset.cpp
@@ -165,7 +165,7 @@ public:
    }

    jobject operator()(icu::UnicodeString const& value) const {
-               return env->NewString(value.getBuffer(), value.length());
+               return env->NewString((jchar*)value.getBuffer(), value.length())
    }

    jobject operator()(mapnik::value_null const& value) const {

-> after this compilation succeeds

Linkage errors

Though the compilation is OK, the linkage fails.
I have unresolved external links I can't fix.
Probably some more .lib to add so I tried to add all mapnik's dependencies I could think of but these 11 errors keep annoying me :'(

mapnikjni.obj : error LNK2001: unresolved external symbol "public: static void __cdecl mapnik::path_processor::collect_attributes(class std::vector<class boost::variant<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct mapnik::attribute,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,structboost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,class std::allocator<class boost::variant<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct mapnik::attribute,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > > const &,class std::set<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > &)" (?collect_attributes@path_processor@mapnik@@SAXABV?$vector@V?$variant@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uattribute@mapnik@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@V?$allocator@V?$variant@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uattribute@mapnik@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@std@@AAV?$set@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@4@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node * __cdecl std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Min(struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node *)" (__imp_?_Min@?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@SAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@2@PAU342@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node * & __cdecl std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Right(struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node *)" (__imp_?_Right@?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@SAAAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@2@PAU342@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node * & __cdecl std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Parent(struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node *)" (__imp_?_Parent@?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@SAAAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@2@PAU342@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static char & __cdecl std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Isnil(struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node *)" (__imp_?_Isnil@?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@SAAADPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@2@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > & __cdecl std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Myval(struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node *)" (__imp_?_Myval@?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@SAAAU?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@2@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@2@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node * & __cdecl std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Left(struct std::_Tree_nod<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::_Node *)" (__imp_?_Left@?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@SAAAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@2@PAU342@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::_Tree_const_iterator<class std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> > > __thiscall std::_Tree<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::end(void)const " (__imp_?end@?$_Tree@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@QBE?AV?$_Tree_const_iterator@V?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@@2@XZ)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::_Tree_const_iterator<class std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> > > __thiscall std::_Tree<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > >,0> >::begin(void)const " (__imp_?begin@?$_Tree@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@QBE?AV?$_Tree_const_iterator@V?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@$0A@@std@@@std@@@2@XZ)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> & __thiscall std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_>,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class boost::variant<struct mapnik::value_null,int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_> > > >::operator[](class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_??A?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@@std@@@2@@std@@QAEAAV?$variant@Uvalue_null@mapnik@@HNV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Uvoid_@0detail@boost@@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@U5067@@boost@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z)
mapnikjni.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall mapnik::feature_impl::id(void)const " (__imp_?id@feature_impl@mapnik@@QBEHXZ)
E:\_WORK\_V_STUDIO\mapnik-jni\Release\mapnik-jni.dll : fatal error LNK1120: 11 unresolved externals
@springmeyer
Copy link
Owner

Thank you. The symbols problem likely needs fixing in Mapnik core by adding MAPNIK_DECL to a few more headers that the nni bindings use.

@ngmip
Copy link
Author

ngmip commented Jan 18, 2013

oook,

Thanks for the answer !

I quickly checked the header to see what was this MAPNIK_DECL about but ... it's beyond my c++ knowledge.
I really would but I'm afraid I cant really help out there.

@jlnr
Copy link

jlnr commented Aug 25, 2015

On the off-chance that someone is looking for a Windows build, I have gotten my Mapnik 3-based fork of mapnik-jni to compile on Windows.

I have committed the MSVC 2015 project to my branch here:

https://github.com/jlnr/mapnik-jni/tree/msvc-2015

It assumes that the 64-bit Mapnik 3.0 SDK linked in this comment is extracted next to the mapnik-jni working copy, so that referencing ../mapnik-sdk/include etc. works.

mapnik/mapnik#3014 (comment)

It also expects the 64-bit JDK 8u60 to be installed in the default location (C:\Program Files\...). And lastly, agg 2.5 needs to be available at ..\agg2.5\. See this line for the full include path:

jlnr@1016eb0#diff-b0df432f8c3bd5e07c6ee970a0784777R45

The generated mapnik-jni\mapnik-jni\x64\Release\mapnik-jni.dll works for me. I'm using it along with the mapnik-jni.jar built on a Unix machine; not sure if you can build the latter from Windows or not.

HTH.

@Andy511823558
Copy link

How do I get the 'mapnik-jni.dll'? Thanks!

@Andy511823558
Copy link

But when I build it with Visual Studio 2019, it has a error in mapnik/feature.hpp/line108:
错误 C2664 “mapnik::geometry::geometry::geometry(const mapnik::geometry::geometry &)”: 无法将参数 1 从“mapnik::geometry::geometry_empty”转换为“mapbox::util::no_init” mapnik-jni D:\mapnik-jni-master\mapnik-windows-master\mapnik-windows-master\include\mapnik\feature.hpp 108
What's the problem? thanks!

@Andy511823558
Copy link

Andy511823558 commented Dec 27, 2019 via email

@jlnr
Copy link

jlnr commented Dec 27, 2019

Sorry, no idea. The mapnik interfaces have probably changed since I've last compiled mapnik-jni. If you can find an older Windows build of mapnik somewhere (from around 2015), you might be able to make it work with that.

@Andy511823558
Copy link

Andy511823558 commented Dec 27, 2019 via email

@jlnr
Copy link

jlnr commented Dec 27, 2019

Sorry, I don't have a compiled mapnik-jni.dll anymore, and I doubt it would be compatible with a different version of Mapnik anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants