c – 使用node-gyp构建时无法加载node.js本机插件,但在使用Visual Studio构建时可以正常工作

c – 使用node-gyp构建时无法加载node.js本机插件,但在使用Visual Studio构建时可以正常工作,第1张

概述我为node.js编写了一个本机插件,使用没有node-gyp的MSVC编译它,并在节点REPL和应用程序中成功使用它.我正在使用x64节点并编译x64插件.我正试图用node-gyp来构建东西.我已经获得了node-gyp来生成Visual Studio解决方案并对其进行编译,但是出来的插件不起作用.我得到的唯一错误是: Error: The specified procedure could 我为node.Js编写了一个本机插件,使用没有node-gyp的MSVC编译它,并在节点REPL和应用程序中成功使用它.我正在使用x64节点并编译x64插件.我正试图用node-gyp来构建东西.我已经获得了node-gyp来生成Visual Studio解决方案并对其进行编译,但是出来的插件不起作用.我得到的唯一错误是:
Error: The specifIEd procedure Could not be found.    at Object.Module._extensions..node (module.Js:480:11)    at Module.load (module.Js:356:32)    at Function.Module._load (module.Js:312:12)    at Module.require (module.Js:362:17)    at require (module.Js:378:17)    at repl:1:13    at REPLServer.self.eval (repl.Js:111:21)    at rli.on.e (repl.Js:260:20)    at REPLServer.self.eval (repl.Js:118:5)    at Interface.<anonymous> (repl.Js:250:12)

当我运行一个试图加载插件的脚本时,我得到了这个:

module.Js:480  process.dlopen(filename,module.exports);          ^Error: The specifIEd procedure Could not be found.    at Object.Module._extensions..node (module.Js:480:11)    at Module.load (module.Js:356:32)    at Function.Module._load (module.Js:312:12)    at Module.require (module.Js:362:17)    at require (module.Js:378:17)    at Object.<anonymous> (c:\blah\testheaders.Js:1:75)    at Module._compile (module.Js:449:26)    at Object.Module._extensions..Js (module.Js:467:10)    at Module.load (module.Js:356:32)    at Function.Module._load (module.Js:312:12)

我了解到dlopen与在linux上加载动态库有关,但找不到与节点相关的任何有用信息(特别是在windows上).这个插件需要一些第三方dll,但是它们在我的路径上,而且当我在没有node-gyp的情况下编译时,插件工作正常.

我需要做些什么来弄清楚如何使这项工作?

解决方法 事实证明,问题在于我使用了NODE_MODulE宏.我有这样的事情:
NODE_MODulE(SomeAddonname,Init)

但是我的binding.gyp有这个:

"target_name": "totallyDifferentname",

事实证明,binding.gyp中的target_name必须与模块名称(NODE_MODulE的第一个参数)相同.

感谢@TooTallNate帮助我做到这一点!

总结

以上是内存溢出为你收集整理的c – 使用node-gyp构建时无法加载node.js本机插件,但在使用Visual Studio构建时可以正常工作全部内容,希望文章能够帮你解决c – 使用node-gyp构建时无法加载node.js本机插件,但在使用Visual Studio构建时可以正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1238104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存