Skip to content
This repository has been archived by the owner on Oct 15, 2020. It is now read-only.

nan error when building native libraries #154

Closed
munyirik opened this issue Dec 6, 2016 · 5 comments
Closed

nan error when building native libraries #154

munyirik opened this issue Dec 6, 2016 · 5 comments

Comments

@munyirik
Copy link

munyirik commented Dec 6, 2016

  • Version: 7.0.0-pre10
  • Platform: Windows 10
  • Subsystem: Debugger

Repro steps:

  1. Install node-chakracore 7.0.0-pre10.
  2. Go to any folder and run "npm install serialport --build-from-source" (this should repro with any native library using nan).

Result:
e:\projects\nodejswebserver6\node_modules\nan\nan_implementation_12_inl.h(54): error C2664: 'v8::Localv8::Context v8:
:Context::New(v8::Isolate *,bool,v8::ExtensionConfiguration *,v8::Localv8::ObjectTemplate,v8::Localv8::Value)': can
not convert argument 3 from 'v8::Localv8::ObjectTemplate' to 'v8::ExtensionConfiguration *' (compiling source file ..
\src\serialport_win.cpp) [E:\Projects\NodejsWebServer6\node_modules\serialport\build\serialport.vcxproj]
e:\projects\nodejswebserver6\node_modules\nan\nan_implementation_12_inl.h(54): note: No user-defined-conversion opera
tor available that can perform this conversion, or the operator cannot be called (compiling source file ..\src\serial
port_win.cpp)

@digitalinfinity
Copy link
Contributor

Should be fixed by #151

@kunalspathak
Copy link
Member

#151 doesn't seem to fix the issue. Tested with https://nodejs.org/download/test/v7.0.0-test20161202bd15adad5c/ binary that was present in that PR.

  ase\serialport.exp
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: static class v8::internal::Object * * __cde
cl v8::HandleScope::CreateHandle(class v8::internal::Isolate *,class v8::internal::Object *)" (__imp_?CreateHandle@HandleScope@v8@@KAPEA
PEAVObject@internal@2@PEAVIsolate@42@PEAV342@@Z) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: static class v8::internal::Object * * __cdecl
 v8::HandleScope::CreateHandle(class v8::internal::HeapObject *,class v8::internal::Object *)" (__imp_?CreateHandle@HandleScope@v8@@CAPE
APEAVObject@internal@2@PEAVHeapObject@42@PEAV342@@Z) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class v8::Local<class v8::FunctionTempl
ate> __cdecl v8::FunctionTemplate::New(class v8::Isolate *,void (__cdecl*)(class v8::FunctionCallbackInfo<class v8::Value> const &),clas
s v8::Local<class v8::Value>,class v8::Local<class v8::Signature>,int,enum v8::ConstructorBehavior)" (__imp_?New@FunctionTemplate@v8@@SA
?AV?$Local@VFunctionTemplate@v8@@@2@PEAVIsolate@2@P6AXAEBV?$FunctionCallbackInfo@VValue@v8@@@2@@ZV?$Local@VValue@v8@@@2@V?$Local@VSignat
ure@v8@@@2@HW4ConstructorBehavior@2@@Z) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: static void __cdecl v8::V8::ToLocalEmpty(void
)" (__imp_?ToLocalEmpty@V8@v8@@CAXXZ) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: static void __cdecl v8::V8::DisposeGlobal(cla
ss v8::internal::Object * *)" (__imp_?DisposeGlobal@V8@v8@@CAXPEAPEAVObject@internal@2@@Z) [E:\temp\node_modules\serialport\build\serial
port.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: static class v8::internal::Object * * __cdecl
 v8::V8::GlobalizeReference(class v8::internal::Isolate *,class v8::internal::Object * *)" (__imp_?GlobalizeReference@V8@v8@@CAPEAPEAVOb
ject@internal@2@PEAVIsolate@42@PEAPEAV342@@Z) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: class v8::internal::Object * * __cdecl v8::Es
capableHandleScope::Escape(class v8::internal::Object * *)" (__imp_?Escape@EscapableHandleScope@v8@@AEAAPEAPEAVObject@internal@2@PEAPEAV
342@@Z) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: class v8::Local<class v8::Value> __cdecl v8::
Object::SlowGetInternalField(int)" (__imp_?SlowGetInternalField@Object@v8@@AEAA?AV?$Local@VValue@v8@@@2@H@Z) [E:\temp\node_modules\seria
lport\build\serialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class v8::Local<class v8::ObjectTemplat
e> __cdecl v8::ObjectTemplate::New(class v8::Isolate *,class v8::Local<class v8::FunctionTemplate>)" (__imp_?New@ObjectTemplate@v8@@SA?A
V?$Local@VObjectTemplate@v8@@@2@PEAVIsolate@2@V?$Local@VFunctionTemplate@v8@@@2@@Z) [E:\temp\node_modules\serialport\build\serialport.vc
xproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class v8::Local<class v8::Int32> __cdecl v8::V
alue::ToInt32(void)const " (__imp_?ToInt32@Value@v8@@QEBA?AV?$Local@VInt32@v8@@@2@XZ) [E:\temp\node_modules\serialport\build\serialport.
vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class v8::Local<class v8::Object> __cdecl v8::
Value::ToObject(void)const " (__imp_?ToObject@Value@v8@@QEBA?AV?$Local@VObject@v8@@@2@XZ) [E:\temp\node_modules\serialport\build\serialp
ort.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class v8::Local<class v8::String> __cdecl v8::
Value::ToString(void)const " (__imp_?ToString@Value@v8@@QEBA?AV?$Local@VString@v8@@@2@XZ) [E:\temp\node_modules\serialport\build\serialp
ort.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class v8::Local<class v8::Number> __cdecl v8::
Value::ToNumber(void)const " (__imp_?ToNumber@Value@v8@@QEBA?AV?$Local@VNumber@v8@@@2@XZ) [E:\temp\node_modules\serialport\build\serialp
ort.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class v8::Local<class v8::Boolean> __cdecl v8:
:Value::ToBoolean(void)const " (__imp_?ToBoolean@Value@v8@@QEBA?AV?$Local@VBoolean@v8@@@2@XZ) [E:\temp\node_modules\serialport\build\ser
ialport.vcxproj]
serialport.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: bool __cdecl v8::Value::QuickIsString(void)co
nst " (__imp_?QuickIsString@Value@v8@@AEBA_NXZ) [E:\temp\node_modules\serialport\build\serialport.vcxproj]
E:\temp\node_modules\serialport\build\Release\serialport.node : fatal error LNK1120: 15 unresolved externals [E:\temp\node_modules\seria
lport\build\serialport.vcxproj]

@kunalspathak
Copy link
Member

Verified with correct parameters and it does fix the issue. Sorry about the confusion.

@kunalspathak
Copy link
Member

@munyirik , I have updated the binaries of pre10 with the fix. Please try and let us know how it goes.

@munyirik
Copy link
Author

munyirik commented Jan 3, 2017

It worked. Thanks @kunalspathak !

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

No branches or pull requests

3 participants