albanm/node-libxslt

fails to build in Windows

Closed this issue · 7 comments

Hi,

I'm trying to build recent versions of node-libxslt on Windows: I tried different configurations:

  • Windows 10
  • node 0.10., 0.12., 4.*.0 (all 32bit using NVM)
  • MS Visual C++ 2013 Express / MS Visual C++ 2010
  • Updated node-gyp

I get node_libxslt.obj : error LNK2001: unresolved external symbol errors

Any hint would be appreciated! 😄 Cheers!

Detailed messages:

$ npm install libxslt
|
> libxmljs-mt@0.14.3 install c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt
> node-gyp rebuild


c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt>node "C:\Users\benoror\AppData\Roaming\nvm\v0.10.36\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  buf.c
  catalog.c
  chvalid.c
  dict.c
  encoding.c
  entities.c
  error.c
  globals.c
..\..\vendor\libxml\catalog.c(979): warning C4013: 'open' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\catalog.c(998): warning C4013: 'close' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\catalog.c(1005): warning C4013: 'read' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\dict.c(188): warning C4244: 'function' : conversion from 'time_t' to 'unsigned int', possible loss of data [c:\U sers\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\dict.c(252): warning C4018: '>' : signed/unsigned mismatch [c:\Users\benoror\my-node-project \node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\dict.c(320): warning C4018: '>' : signed/unsigned mismatch [c:\Users\benoror\my-node-project \node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
  hash.c
  HTMLparser.c
  HTMLtree.c
  legacy.c
  list.c
  parser.c
  parserInternals.c
  pattern.c
  relaxng.c
  SAX2.c
  SAX.c
  tree.c
  threads.c
  uri.c
  valid.c
  xinclude.c
  xlink.c
  xmlIO.c
  xmlmemory.c
  xmlmodule.c
  xmlreader.c
  xmlregexp.c
  xmlsave.c
  xmlschemas.c
  xmlschemastypes.c
  xmlstring.c
  xmlunicode.c
  xmlwriter.c
  xpath.c
  xpointer.c
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(82): warn ing C4244: 'initializing' : conversion from 'uint64_t' to 'const int', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(193): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(342): war ning C4244: 'function' : conversion from 'const int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(348): war ning C4244: 'function' : conversion from 'const int64_t' to 'size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(372): war ning C4244: 'function' : conversion from 'const int64_t' to 'size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(477): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(477): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(478): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(478): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(479): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(479): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(488): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\timsort.h(488): war ning C4244: 'function' : conversion from 'int64_t' to 'const size_t', possible loss of data [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\xmlIO.c(668): warning C4133: 'function' : incompatible types - from 'stat *' to '_stat64i32 *' [c:\Users\benoror \my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\xmlIO.c(829): warning C4013: 'read' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\xmlIO.c(850): warning C4013: 'write' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\xmlIO.c(868): warning C4013: 'close' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\xmlIO.c(3844): warning C4013: 'getcwd' undefined; assuming extern returning int [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
..\..\vendor\libxml\xmlIO.c(3844): warning C4047: '!=' : 'int' differs in levels of indirection from 'void *' [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\vendor\libxml.vcxproj]
  libxml.vcxproj -> c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\Release
  \\libxml.lib
  libxmljs.cc
  xml_attribute.cc
  xml_document.cc
  xml_element.cc
  xml_comment.cc
  xml_namespace.cc
  xml_node.cc
  xml_sax_parser.cc
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\node_modules\nan\nan_new.h(208):
warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\xmljs.vcxproj]
          ..\src\libxmljs.cc(159) : see reference to function template instantiation 'v8::Local<T> NanNew<v8::Boolean,int>(A0)' bein
  g compiled
          with
          [
              T=v8::Boolean,
              A0=int
          ]
  xml_syntax_error.cc
  xml_xpath_context.cc
c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\node_modules\nan\nan_new.h(208):
warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\xmljs.vcxproj]
          ..\src\xml_xpath_context.cc(50) : see reference to function template instantiation 'v8::Local<T> NanNew<v8::Boolean,int>(A
  0)' being compiled
          with
          [
              T=v8::Boolean,
              A0=int
          ]
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector(753): warning C4530: C++ exception handler used, but unwind se mantics are not enabled. Specify /EHsc [c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxm ljs-mt\build\xmljs.vcxproj]
          c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector(746) : while compiling class template member functio
  n 'void std::vector<_Ty>::reserve(unsigned int)'
          with
          [
              _Ty=uint16_t
          ]
          c:\users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\node_modules\nan\nan_im
  plementation_pre_12_inl.h(215) : see reference to class template instantiation 'std::vector<_Ty>' being compiled
          with
          [
              _Ty=uint16_t
          ]
     Creating library c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\Relea
  se\xmljs.lib and object c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\R
  elease\xmljs.exp
  Generating code
  Finished generating code
  xmljs.vcxproj -> c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\build\Release\
  \xmljs.node

> libxslt@0.5.4 install c:\Users\benoror\my-node-project\node_modules\libxslt
> node-gyp rebuild


c:\Users\benoror\my-node-project\node_modules\libxslt>node "C:\Users\benoror\AppData\Roaming\nvm\v0.10.36\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  common.c
  crypto.c
  date.c
  dynamic.c
  exslt.c
  functions.c
  math.c
  saxon.c
c:\Users\benoror\my-node-project\node_modules\libxslt\deps\libxslt.config\win\ia32\config.h(95): warning C4005:
'HAVE_STAT' : macro redefinition [c:\Users\benoror\my-node-project\node_modules\libxslt\build\deps\libexslt.vcxp roj]
          c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\include\w
  in32config.h(18) : see previous definition of 'HAVE_STAT'
c:\Users\benoror\my-node-project\node_modules\libxslt\deps\libxslt.config\win\ia32\config.h(98): warning C4005:
'HAVE_STDARG_H' : macro redefinition [c:\Users\benoror\my-node-project\node_modules\libxslt\build\deps\libexslt. vcxproj]
          c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\include\w
  in32config.h(5) : see previous definition of 'HAVE_STDARG_H'
c:\Users\benoror\my-node-project\node_modules\libxslt\deps\libxslt.config\win\ia32\config.h(104): warning C4005:  'HAVE_STDLIB_H' : macro redefinition [c:\Users\benoror\my-node-project\node_modules\libxslt\build\deps\libexslt .vcxproj]
          c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\include\w
  in32config.h(19) : see previous definition of 'HAVE_STDLIB_H'
c:\Users\benoror\my-node-project\node_modules\libxslt\deps\libxslt.config\win\ia32\config.h(116): warning C4005:  'HAVE_SYS_STAT_H' : macro redefinition [c:\Users\benoror\my-node-project\node_modules\libxslt\build\deps\libexs lt.vcxproj]
          c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\include\w
  in32config.h(16) : see previous definition of 'HAVE_SYS_STAT_H'
c:\Users\benoror\my-node-project\node_modules\libxslt\deps\libxslt.config\win\ia32\config.h(131): warning C4005:  'HAVE_TIME_H' : macro redefinition [c:\Users\benoror\my-node-project\node_modules\libxslt\build\deps\libexslt.v cxproj]
          c:\Users\benoror\my-node-project\node_modules\libxslt\node_modules\libxmljs-mt\vendor\libxml\include\w
  in32config.h(20) : see previous definition of 'HAVE_TIME_H'
  sets.c
  strings.c
  libexslt.vcxproj -> c:\Users\benoror\my-node-project\node_modules\libxslt\build\Release\\libexslt.lib
  attributes.c
  attrvt.c
  documents.c
  extensions.c
  extra.c
  functions.c
  imports.c
  keys.c
..\..\deps\libxslt\libxslt\extensions.c(377): warning C4013: 'LIBXSLT_DEFAULT_PLUGINS_PATH' undefined; assuming extern returning int  [c:\Users\benoror\my-node-project\node_modules\libxslt\build\deps\libxslt.vcxproj]
  namespaces.c
  numbers.c
  pattern.c
  preproc.c
  security.c
  templates.c
  transform.c
  variables.c
  xslt.c
  xsltlocale.c
  xsltutils.c
  libxslt.vcxproj -> c:\Users\benoror\my-node-project\node_modules\libxslt\build\Release\\libxslt.lib
  node_libxslt.cc
  stylesheet.cc
..\src\node_libxslt.cc(1): warning C4005: 'BUILDING_NODE_EXTENSION' : macro redefinition [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
          command-line arguments :  see previous definition of 'BUILDING_NODE_EXTENSION'
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale(323): warning C4530: C++ exception handler used, but unwind s emantics are not enabled. Specify /EHsc [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxsl t.vcxproj]
C:\Users\benoror\.node-gyp\0.10.36\deps\v8\include\v8.h(179): warning C4506: no definition for inline function 'v8::Persistent<T> v8 ::Persistent<T>::New(v8::Handle<T>)' [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.v cxproj]
          with
          [
              T=v8::Object
          ]
..\src\node_libxslt.cc(95): warning C4018: '<' : signed/unsigned mismatch [c:\Users\benoror\my-node-project\node _modules\libxslt\build\node-libxslt.vcxproj]
C:\Users\benoror\.node-gyp\0.10.36\deps\v8\include\v8.h(179): warning C4506: no definition for inline function 'v8::Persistent<T> v8 ::Persistent<T>::New(v8::Handle<T>)' [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.v cxproj]
          with
          [
              T=v8::Object
          ]
     Creating library c:\Users\benoror\my-node-project\node_modules\libxslt\build\Release\node-libxslt.lib and o
  bject c:\Users\benoror\my-node-project\node_modules\libxslt\build\Release\node-libxslt.exp
node_libxslt.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall libxmljs::WorkerParent::~WorkerParent(void) " (??1WorkerParent@libxmljs@@UAE@XZ) [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.v cxproj]
node_libxslt.obj : error LNK2001: unresolved external symbol "public: __thiscall libxmljs::WorkerParent::WorkerParent(void)" (??0Wor kerParent@libxmljs@@QAE@XZ) [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
node_libxslt.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall libxmljs::WorkerSentinel::~WorkerSentinel(v oid)" (??1WorkerSentinel@libxmljs@@UAE@XZ) [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-lib xslt.vcxproj]
node_libxslt.obj : error LNK2001: unresolved external symbol "public: __thiscall libxmljs::WorkerSentinel::WorkerSentinel(class libx mljs::WorkerParent &)" (??0WorkerSentinel@libxmljs@@QAE@AAVWorkerParent@1@@Z) [c:\Users\benoror\my-node-project\ node_modules\libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _xmlModuleClose [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _xmlModuleSymbol [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _xmlModuleOpen [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _LIBXSLT_DEFAULT_PLUGINS_PATH [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
c:\Users\benoror\my-node-project\node_modules\libxslt\build\Release\node-libxslt.node : fatal error LNK1120: 8 u nresolved externals [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\benoror\AppData\Roaming\nvm\v0.10.36\node_modules\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "C:\\Users\\benoror\\AppData\\Roaming\\nvm\\v0.10.36\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd c:\Users\benoror\my-node-project\node_modules\libxslt
gyp ERR! node -v v0.10.36
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

npm ERR! libxslt@0.5.4 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the libxslt@0.5.4 install script.
npm ERR! This is most likely a problem with the libxslt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls libxslt
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "libxslt"
npm ERR! cwd c:\Users\benoror\my-node-project
npm ERR! node -v v0.10.36
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0

Have you solved the problem ?

Nope, switched to Unix env for building it

tobha commented

Same here. Doesn't build on Windows. Switched to Linux.

Sent from my iPhone

On Nov 1, 2015, at 10:23 AM, Benjamin Orozco notifications@github.com wrote:

Nope, switched to Unix env for building it


Reply to this email directly or view it on GitHub.

I also have problems with ubuntu 14 (32bit)
Node 4.x.x

node_libxslt.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall libxmljs::WorkerParent::~WorkerParent(void) " (??1WorkerParent@libxmljs@@UAE@XZ) [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.v cxproj]
node_libxslt.obj : error LNK2001: unresolved external symbol "public: __thiscall libxmljs::WorkerParent::WorkerParent(void)" (??0Wor kerParent@libxmljs@@QAE@XZ) [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-libxslt.vcxproj]
node_libxslt.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall libxmljs::WorkerSentinel::~WorkerSentinel(v oid)" (??1WorkerSentinel@libxmljs@@UAE@XZ) [c:\Users\benoror\my-node-project\node_modules\libxslt\build\node-lib xslt.vcxproj]
node_libxslt.obj : error LNK2001: unresolved external symbol "public: __thiscall libxmljs::WorkerSentinel::WorkerSentinel(class libx mljs::WorkerParent &)" (??0WorkerSentinel@libxmljs@@QAE@AAVWorkerParent@1@@Z) [c:\Users\benoror\my-node-project\ node_modules\libxslt\build\node-libxslt.vcxproj]

These two classes are part of my changes from single-threaded libxmljs to multi-threaded libxmljs-mt. In my opinion, they should be included in the dependency object from the libxmljs-mt directory. Here is the implementation. Can someone with access to a Windows machine and some debugging knowledge check in which object files these symbols end up, and perhaps also why that's not enough to satisfy the linker? Do I have to somehow export the symbols as well?

Do I have to somehow export the symbols as well?

Apparently I do have to write __declspec(dllexport) on all the symbols I whish to export, and probably the same with dllimport in the headers when using the symbols. I did some of this in libxmljs-mt-0.15.1, but I still get errors from AppVeyor:

libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _xmlModuleClose [C:\projects\node-libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _xmlModuleSymbol [C:\projects\node-libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _LIBXSLT_DEFAULT_PLUGINS_PATH [C:\projects\node-libxslt\build\node-libxslt.vcxproj]
libxslt.lib(extensions.obj) : error LNK2001: unresolved external symbol _xmlModuleOpen [C:\projects\node-libxslt\build\node-libxslt.vcxproj]
C:\projects\node-libxslt\build\Release\node-libxslt.node : fatal error LNK1120: 4 unresolved externals [C:\projects\node-libxslt\build\node-libxslt.vcxproj]

So it seems as if now that my memory sentinels get exported correctly, I'll next have to worry to get all the symbols from libxml itself exported correctly. Preferrably without modifying their codebase since it's a git submodule. I must confess that right now I don't see why this doesn't work already, since xmlmodule.c defines IN_LIBXML before including xmlversion.h which in turn includes xmlexports.h defining XMLPUBFUN as an alias to __declspec(dllexport) which in turn decorates xmlModuleClose in xmlmodule.h. Strange. Any ideas?

Apparently a Windows build won't re-export symbols which are marked for DLL export in some static library used by the top level module. @benoror and @tobha, can you give #32 a try please?