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

Already on GitHub? Sign in to your account

node-mapnik linking to mapnik broken #1527

Closed
springmeyer opened this Issue Oct 10, 2012 · 2 comments

Comments

Projects
None yet
3 participants
Owner

springmeyer commented Oct 10, 2012

relevant linking error is:

  mapnik_map.obj : error LNK2019: unresolved external symbol "public: class std::vector<class boost::variant<struct mapnik::point_symbolizer,struct mapnik::line_symbolizer,struct mapnik::line_pattern_symbolizer,struct mapnik::polygon_symbolizer,struct mapnik::polygon_pattern_symbolizer,struct mapnik::raster_symbolizer,struct mapnik::shield_symbolizer,struct mapnik::text_symbolizer,struct mapnik::building_symbolizer,struct mapnik::markers_symbolizer,struct mapnik::debug_symbolizer,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct 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<struct mapnik::point_symbolizer,struct mapnik::line_symbolizer,struct mapnik::line_pattern_symbolizer,struct mapnik::polygon_symbolizer,struct mapnik::polygon_pattern_symbolizer,struct mapnik::raster_symbolizer,struct mapnik::shield_symbolizer,struct mapnik::text_symbolizer,struct mapnik::building_symbolizer,struct mapnik::markers_symbolizer,struct mapnik::debug_symbolizer,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct 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 & __thiscall mapnik::rule::get_symbolizers(void)const " (?get_symbolizers@rule@mapnik@@QBEABV?$vector@V?$variant@Upoint_symbolizer@mapnik@@Uline_symbolizer@2@Uline_pattern_symbolizer@2@Upolygon_symbolizer@2@Upolygon_pattern_symbolizer@2@Uraster_symbolizer@2@Ushield_symbolizer@2@Utext_symbolizer@2@Ubuilding_symbolizer@2@Umarkers_symbolizer@2@Udebug_symbolizer@2@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@@boost@@V?$allocator@V?$variant@Upoint_symbolizer@mapnik@@Uline_symbolizer@2@Uline_pattern_symbolizer@2@Upolygon_symbolizer@2@Upolygon_pattern_symbolizer@2@Uraster_symbolizer@2@Ushield_symbolizer@2@Utext_symbolizer@2@Ubuilding_symbolizer@2@Umarkers_symbolizer@2@Udebug_symbolizer@2@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@@boost@@@std@@@std@@XZ) referenced in function "public: int __thiscall Map::estimate_map_size(void)" (?estimate_map_size@Map@@QAEHXZ) [c:\dev2\node-mapnik\_mapnik.vcxproj]
  c:\dev2\node-mapnik\Default\_mapnik.node : fatal error LNK1120: 1 unresolved externals [c:\dev2\node-mapnik\_mapnik.vcxproj]

Whole build output is:

Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.239]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 10/9/2012 7:43:02 PM.
Project "c:\dev2\node-mapnik\build.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Default|Win32".
Project "c:\dev2\node-mapnik\build.sln" (1) is building "c:\dev2\node-mapnik\_mapnik.vcxproj" (2) on node 1 (default targets).
InitializeBuildStatus:
  Creating "Default\obj\_mapnik\_mapnik.unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"c:\mapnik-2.0\include" /Ic:\dev2\freetype /Ic:\dev2\freetype\include /Ic:\dev2\cairo /Ic:\dev2\cairo\src /Ic:\dev2\cairomm /Ic:\dev2\libsigc++ /I"c:\dev2\boost-49-vc100\include\boost-1_49" /Ic:\node\deps\v8\include /Ic:\node\src /Ic:\node\deps\uv\include /Ic:\dev2\proj\src /Ic:\dev2\icu\include /I"c:\dev2\mapnik-packaging\windows\ltdl" /Zi /nologo /W1 /WX- /O2 /Oy- /D "PLATFORM=\"win\"" /D HAVE_JPEG /D MAPNIK_THREADSAFE /D HAVE_LIBXML2 /D LIBTOOL_SUPPORTS_ADVISE /D HAVE_CAIRO /D "PLATFORM=\"win32\"" /D _LARGEFILE_SOURCE /D _FILE_OFFSET_BITS=64 /D _WINDOWS /D __WINDOWS__ /D BUILDING_NODE_EXTENSION /D _WINDLL /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Default\obj\_mapnik\\" /Fd"Default\obj\_mapnik\vc100.pdb" /Gd /TP /analyze- /errorReport:queue src\mapnik_map.cpp
  mapnik_map.cpp
src\mapnik_map.cpp(997): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
src\mapnik_map.cpp(1631): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
src\mapnik_map.cpp(1806): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
src\mapnik_map.cpp(1870): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
c:\dev2\boost-49-vc100\include\boost-1_49\boost/variant/detail/initializer.hpp(90): warning C4506: no definition for inline function 'v8::Persistent<T> v8::Persistent<T>::New(v8::Handle<T>)' [c:\dev2\node-mapnik\_mapnik.vcxproj]
          with
          [
              T=v8::Object
          ]
c:\dev2\boost-49-vc100\include\boost-1_49\boost/variant/detail/initializer.hpp(90): warning C4506: no definition for inline function 'v8::Persistent<T> v8::Persistent<T>::New(v8::Handle<T>)' [c:\dev2\node-mapnik\_mapnik.vcxproj]
          with
          [
              T=v8::FunctionTemplate
          ]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(c:\dev2\node-mapnik\Default\_mapnik.dll) does not match the Linker's OutputFile property value (c:\dev2\node-mapnik\Default\_mapnik.node). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). [c:\dev2\node-mapnik\_mapnik.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(991,5): warning MSB8012: TargetExt(.dll) does not match the Linker's OutputFile property value (.node). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). [c:\dev2\node-mapnik\_mapnik.vcxproj]
Link:
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:QUEUE /OUT:"c:\dev2\node-mapnik\Default\_mapnik.node" /NOLOGO /LIBPATH:c:\node\Release\lib /LIBPATH:c:\node\Release /LIBPATH:"c:\dev2\mapnik-packaging\windows\build\src\msvc-10.0\release\threading-multi" /LIBPATH:"c:\dev2\boost-49-vc100\lib" /LIBPATH:c:\dev2\icu\lib mapnik.lib node.lib icuuc.lib "libboost_regex-vc100-mt-1_49.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Default\obj\_mapnik\_mapnik.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:"c:\dev2\node-mapnik\Default\_mapnik.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /DLL Default\obj\_mapnik\mapnik_image_view.obj
  Default\obj\_mapnik\mapnik_color.obj
  Default\obj\_mapnik\mapnik_js_datasource.obj
  Default\obj\_mapnik\mapnik_map.obj
  Default\obj\_mapnik\mapnik_geometry.obj
  Default\obj\_mapnik\mapnik_grid_view.obj
  Default\obj\_mapnik\mapnik_featureset.obj
  Default\obj\_mapnik\mapnik_grid.obj
  Default\obj\_mapnik\mapnik_layer.obj
  Default\obj\_mapnik\mapnik_image.obj
  Default\obj\_mapnik\mapnik_datasource.obj
  Default\obj\_mapnik\node_mapnik.obj
  Default\obj\_mapnik\mapnik_projection.obj
  Default\obj\_mapnik\mapnik_feature.obj
  Default\obj\_mapnik\mapnik_palette.obj
  Default\obj\_mapnik\mapnik_proj_transform.obj
  Default\obj\_mapnik\mapnik_expression.obj
  Default\obj\_mapnik\mapnik_memory_datasource.obj /FORCE:MULTIPLE 
node.lib(node.exe) : warning LNK4006: "public: class v8::Local<class v8::Object> __thiscall v8::AccessorInfo::This(void)const " (?This@AccessorInfo@v8@@QBE?AV?$Local@VObject@v8@@@2@XZ) already defined in mapnik_color.obj; second definition ignored [c:\dev2\node-mapnik\_mapnik.vcxproj]
     Creating library c:\dev2\node-mapnik\Default\_mapnik.lib and object c:\dev2\node-mapnik\Default\_mapnik.exp
mapnik_map.obj : error LNK2019: unresolved external symbol "public: class std::vector<class boost::variant<struct mapnik::point_symbolizer,struct mapnik::line_symbolizer,struct mapnik::line_pattern_symbolizer,struct mapnik::polygon_symbolizer,struct mapnik::polygon_pattern_symbolizer,struct mapnik::raster_symbolizer,struct mapnik::shield_symbolizer,struct mapnik::text_symbolizer,struct mapnik::building_symbolizer,struct mapnik::markers_symbolizer,struct mapnik::debug_symbolizer,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct 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<struct mapnik::point_symbolizer,struct mapnik::line_symbolizer,struct mapnik::line_pattern_symbolizer,struct mapnik::polygon_symbolizer,struct mapnik::polygon_pattern_symbolizer,struct mapnik::raster_symbolizer,struct mapnik::shield_symbolizer,struct mapnik::text_symbolizer,struct mapnik::building_symbolizer,struct mapnik::markers_symbolizer,struct mapnik::debug_symbolizer,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct 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 & __thiscall mapnik::rule::get_symbolizers(void)const " (?get_symbolizers@rule@mapnik@@QBEABV?$vector@V?$variant@Upoint_symbolizer@mapnik@@Uline_symbolizer@2@Uline_pattern_symbolizer@2@Upolygon_symbolizer@2@Upolygon_pattern_symbolizer@2@Uraster_symbolizer@2@Ushield_symbolizer@2@Utext_symbolizer@2@Ubuilding_symbolizer@2@Umarkers_symbolizer@2@Udebug_symbolizer@2@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@@boost@@V?$allocator@V?$variant@Upoint_symbolizer@mapnik@@Uline_symbolizer@2@Uline_pattern_symbolizer@2@Upolygon_symbolizer@2@Upolygon_pattern_symbolizer@2@Uraster_symbolizer@2@Ushield_symbolizer@2@Utext_symbolizer@2@Ubuilding_symbolizer@2@Umarkers_symbolizer@2@Udebug_symbolizer@2@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@@boost@@@std@@@std@@XZ) referenced in function "public: int __thiscall Map::estimate_map_size(void)" (?estimate_map_size@Map@@QAEHXZ) [c:\dev2\node-mapnik\_mapnik.vcxproj]
c:\dev2\node-mapnik\Default\_mapnik.node : fatal error LNK1120: 1 unresolved externals [c:\dev2\node-mapnik\_mapnik.vcxproj]
Done Building Project "c:\dev2\node-mapnik\_mapnik.vcxproj" (default targets) -- FAILED.
Done Building Project "c:\dev2\node-mapnik\build.sln" (default targets) -- FAILED.

Build FAILED.

"c:\dev2\node-mapnik\build.sln" (default target) (1) ->
"c:\dev2\node-mapnik\_mapnik.vcxproj" (default target) (2) ->
(ClCompile target) -> 
  src\mapnik_map.cpp(997): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
  src\mapnik_map.cpp(1631): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
  src\mapnik_map.cpp(1806): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
  src\mapnik_map.cpp(1870): warning C4804: '>=' : unsafe use of type 'bool' in operation [c:\dev2\node-mapnik\_mapnik.vcxproj]
  c:\dev2\boost-49-vc100\include\boost-1_49\boost/variant/detail/initializer.hpp(90): warning C4506: no definition for inline function 'v8::Persistent<T> v8::Persistent<T>::New(v8::Handle<T>)' [c:\dev2\node-mapnik\_mapnik.vcxproj]
  c:\dev2\boost-49-vc100\include\boost-1_49\boost/variant/detail/initializer.hpp(90): warning C4506: no definition for inline function 'v8::Persistent<T> v8::Persistent<T>::New(v8::Handle<T>)' [c:\dev2\node-mapnik\_mapnik.vcxproj]


"c:\dev2\node-mapnik\build.sln" (default target) (1) ->
"c:\dev2\node-mapnik\_mapnik.vcxproj" (default target) (2) ->
(DoLinkOutputFilesMatch target) -> 
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(c:\dev2\node-mapnik\Default\_mapnik.dll) does not match the Linker's OutputFile property value (c:\dev2\node-mapnik\Default\_mapnik.node). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). [c:\dev2\node-mapnik\_mapnik.vcxproj]
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(991,5): warning MSB8012: TargetExt(.dll) does not match the Linker's OutputFile property value (.node). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). [c:\dev2\node-mapnik\_mapnik.vcxproj]


"c:\dev2\node-mapnik\build.sln" (default target) (1) ->
"c:\dev2\node-mapnik\_mapnik.vcxproj" (default target) (2) ->
(Link target) -> 
  node.lib(node.exe) : warning LNK4006: "public: class v8::Local<class v8::Object> __thiscall v8::AccessorInfo::This(void)const " (?This@AccessorInfo@v8@@QBE?AV?$Local@VObject@v8@@@2@XZ) already defined in mapnik_color.obj; second definition ignored [c:\dev2\node-mapnik\_mapnik.vcxproj]


"c:\dev2\node-mapnik\build.sln" (default target) (1) ->
"c:\dev2\node-mapnik\_mapnik.vcxproj" (default target) (2) ->
(Link target) -> 
  mapnik_map.obj : error LNK2019: unresolved external symbol "public: class std::vector<class boost::variant<struct mapnik::point_symbolizer,struct mapnik::line_symbolizer,struct mapnik::line_pattern_symbolizer,struct mapnik::polygon_symbolizer,struct mapnik::polygon_pattern_symbolizer,struct mapnik::raster_symbolizer,struct mapnik::shield_symbolizer,struct mapnik::text_symbolizer,struct mapnik::building_symbolizer,struct mapnik::markers_symbolizer,struct mapnik::debug_symbolizer,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct 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<struct mapnik::point_symbolizer,struct mapnik::line_symbolizer,struct mapnik::line_pattern_symbolizer,struct mapnik::polygon_symbolizer,struct mapnik::polygon_pattern_symbolizer,struct mapnik::raster_symbolizer,struct mapnik::shield_symbolizer,struct mapnik::text_symbolizer,struct mapnik::building_symbolizer,struct mapnik::markers_symbolizer,struct mapnik::debug_symbolizer,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct 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 & __thiscall mapnik::rule::get_symbolizers(void)const " (?get_symbolizers@rule@mapnik@@QBEABV?$vector@V?$variant@Upoint_symbolizer@mapnik@@Uline_symbolizer@2@Uline_pattern_symbolizer@2@Upolygon_symbolizer@2@Upolygon_pattern_symbolizer@2@Uraster_symbolizer@2@Ushield_symbolizer@2@Utext_symbolizer@2@Ubuilding_symbolizer@2@Umarkers_symbolizer@2@Udebug_symbolizer@2@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@@boost@@V?$allocator@V?$variant@Upoint_symbolizer@mapnik@@Uline_symbolizer@2@Uline_pattern_symbolizer@2@Upolygon_symbolizer@2@Upolygon_pattern_symbolizer@2@Uraster_symbolizer@2@Ushield_symbolizer@2@Utext_symbolizer@2@Ubuilding_symbolizer@2@Umarkers_symbolizer@2@Udebug_symbolizer@2@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@Uvoid_@0detail@boost@@@boost@@@std@@@std@@XZ) referenced in function "public: int __thiscall Map::estimate_map_size(void)" (?estimate_map_size@Map@@QAEHXZ) [c:\dev2\node-mapnik\_mapnik.vcxproj]
  c:\dev2\node-mapnik\Default\_mapnik.node : fatal error LNK1120: 1 unresolved externals [c:\dev2\node-mapnik\_mapnik.vcxproj]

    9 Warning(s)
    2 Error(s)

Time Elapsed 00:01:38.00

Contributor

lightmare commented Oct 10, 2012

Since the method was previously inlined and now it's not, I'd suspect it's compiling with new mapnik headers but linking against older mapnik lib.

Btw those warnings about unsafe use of bool point at some really suspicious usage of operator!

Contributor

avlee commented Oct 10, 2012

The rundemo.cpp also has the linking problem.

May be missing MAPNIK_DECL in rule class declaration

@springmeyer springmeyer pushed a commit that referenced this issue Oct 10, 2012

Dane Springmeyer move symbolizers typedef out of rule and be explicit about including …
…config.hpp for MAPNIK_DECL - refs #1527
bf5ffd0

@springmeyer springmeyer pushed a commit that referenced this issue Oct 10, 2012

Dane Springmeyer Revert "move symbolizers typedef out of rule and be explicit about in…
…cluding config.hpp for MAPNIK_DECL - refs #1527"

This reverts commit bf5ffd0.
1f11aeb

@springmeyer springmeyer pushed a commit to mapnik/node-mapnik that referenced this issue Oct 10, 2012

Dane Springmeyer fixup argument checkout to avoid msvc 'unsafe use of type' warning - … 89163fb

@PetrDlouhy PetrDlouhy added a commit to PetrDlouhy/mapnik that referenced this issue Aug 22, 2013

@PetrDlouhy Dane Springmeyer + PetrDlouhy properly set MAPNIK_DECL for mapnik::rule - closes #1527 36be162
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment