node在windows下node-gyp编译可能会出现的问题
2015-08-03 20:10
567 查看
node在windows下nw-gyp编译可能会出现的问题
如果有第三方的include文件和lib文件 应该在nw-gyp生成的.xcxproj中修改一下,
include的文件路径要更新到所有的 AdditionalIncludeDirectories项里,
lib文件要在所有AdditionalDependencies项里指明完整路径,需要的其它系统库文件也要在这里写上。
搞混了,其实是想用node-gyp编译来,结果各方面都设置好以后,发现报错
libeay32MTd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol _ssca
nf [C:\node\crypt\build\tpcrypt.vcxproj]
libeay32MTd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol __vsn
printf [C:\node\crypt\build\tpcrypt.vcxproj]
libeay32MTd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol ___io
b_func [C:\node\crypt\build\tpcrypt.vcxproj]
C:\node\crypt\build\Release\tpcrypt.node : fatal error LNK1120: 3 unresolved ex
ternals [C:\node\crypt\build\tpcrypt.vcxproj]
google,百度无果
无意中用vs2013直接打开configure生成的sln文件,然后在vs里面手工指定node.lib,去掉不相关的系统lib,把对应的SSL三方库改成对应设置里的 C/C++ -> 代码生成 -> 运行库里设置的类型。直接用vs编译,报错,大体跟上面的报错一致 只不过改成了
unresolved external symbol __imp__sscanf referenced in function
其实还是找不到这几个函数,通过stackoverflow上的只字片语了解这个本来是vc6里的方法,后来vs2010以后就不支持了,用了新的iob方法来代替。好在这几个函数没啥用,通过设置里的 C/C++ -> 常规 ->SDL检查,设置为 否 ,编译通过,测试可用。
如果调用模块时出现
Error: %1 is not a valid Win32 application.
这说明生成的模块跟平台不一致(32位、64位)
Error: The specified module could not be found.
一般是需要把所需的第三方的dll复制到.node的同级目录里。
如果有第三方的include文件和lib文件 应该在nw-gyp生成的.xcxproj中修改一下,
include的文件路径要更新到所有的 AdditionalIncludeDirectories项里,
lib文件要在所有AdditionalDependencies项里指明完整路径,需要的其它系统库文件也要在这里写上。
搞混了,其实是想用node-gyp编译来,结果各方面都设置好以后,发现报错
libeay32MTd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol _ssca
nf [C:\node\crypt\build\tpcrypt.vcxproj]
libeay32MTd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol __vsn
printf [C:\node\crypt\build\tpcrypt.vcxproj]
libeay32MTd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol ___io
b_func [C:\node\crypt\build\tpcrypt.vcxproj]
C:\node\crypt\build\Release\tpcrypt.node : fatal error LNK1120: 3 unresolved ex
ternals [C:\node\crypt\build\tpcrypt.vcxproj]
google,百度无果
无意中用vs2013直接打开configure生成的sln文件,然后在vs里面手工指定node.lib,去掉不相关的系统lib,把对应的SSL三方库改成对应设置里的 C/C++ -> 代码生成 -> 运行库里设置的类型。直接用vs编译,报错,大体跟上面的报错一致 只不过改成了
unresolved external symbol __imp__sscanf referenced in function
其实还是找不到这几个函数,通过stackoverflow上的只字片语了解这个本来是vc6里的方法,后来vs2010以后就不支持了,用了新的iob方法来代替。好在这几个函数没啥用,通过设置里的 C/C++ -> 常规 ->SDL检查,设置为 否 ,编译通过,测试可用。
如果调用模块时出现
Error: %1 is not a valid Win32 application.
这说明生成的模块跟平台不一致(32位、64位)
Error: The specified module could not be found.
一般是需要把所需的第三方的dll复制到.node的同级目录里。
相关文章推荐
- 那些年,在nodejs上踩过的坑(一)
- Node.js-小心buffer的拼接问题
- node.js学习笔记
- NodeJS学习第一季-Markdown模块
- 19.Remove Nth Node From End of List(移除单链表中倒数第N个结点)
- Node.js学习入门手册
- Count Complete Tree Nodes***
- [LeetCode] Count Complete Tree Nodes
- Windows下Node.js开发入门(1)
- node-zk-browser环境搭建
- [leetcode] 222.Count Complete Tree Nodes
- Leetcode #222 Count Complete Tree Nodes
- Leetcode Delete Node in a Linked List
- node.js addons development Prerequisite knowledgement/node.js插件开发预备知识
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- 理解inode
- Swap Nodes in Pairs
- [LeetCode] Reverse Nodes in k-Group
- [置顶] Node.js自动化测试及大规模性能测试技术实现(Java&Node.JS)