“dyld:懒惰符号绑定失败的原因:符号未find:”从ZMQ构build错误?

我正在OSX 10.9.5上本地开发Meteor应用程序。

我得到这个错误:

dyld: lazy symbol binding failed: Symbol not found: _node_module_register 

我相信这与zmq软件包有关。 更多来自错误:

 Referenced from: /Users/user/node_modules/zmq/build/Release/zmq.node 

我试过了:

  • npm重build

  • 卸载zmq并重新安装

  • 卸载,重新安装,然后npm重build

  • 删除node_modules目录,然后重新安装zmq以排除任何可能的包冲突。 (在这里引用: dyld:懒符号绑定失败:找不到符号:_node_module_register )

可能的问题我宁愿不testing,除非绝对必要(因为它需要完全升级,我在一台较旧的计算机上):

Warning:Error:dyld:lazy symbol binding failed:Symbol not found:_objc_autoreleasePoolPush

Git> dyld:懒符号绑定失败:找不到符号:_iconv_open

在较新版本的OSX下编译的zmq? (我正在使用10.9.5。升级不是一个可行的select,除非绝对必要。)

如果这是问题….

当nm找不到符号时,处理“dyld:lazy symbol binding failed:Symbol not found”错误

…我如何将库静态链接到zmq?

完整的错误:

 => App running at: http://localhost:3000/ W20151202-10:02:42.764(2)? (STDERR) dyld: lazy symbol binding failed: Symbol not found: _node_module_register W20151202-10:02:42.766(2)? (STDERR) Referenced from: /Users/user/node_modules/zmq/build/Release/zmq.node W20151202-10:02:42.766(2)? (STDERR) Expected in: dynamic lookup W20151202-10:02:42.766(2)? (STDERR) W20151202-10:02:42.767(2)? (STDERR) dyld: Symbol not found: _node_module_register W20151202-10:02:42.767(2)? (STDERR) Referenced from: /Users/user/node_modules/zmq/build/Release/zmq.node W20151202-10:02:42.767(2)? (STDERR) Expected in: dynamic lookup W20151202-10:02:42.767(2)? (STDERR) => Exited from signal: SIGTRAP 

我一直试图解决这个问题一天以上。 任何帮助,将不胜感激。

我能够通过删除node_modules文件夹,然后运行来解决这个问题

 $ meteor npm install 

(对其他人有兴趣的评论的回顾,因为我没有任何动手的经验,我的解决scheme可能是错误的,在这种情况下,请随时纠正我:)

meteor带有自己的一套nodenpm可执行文件。 如果您想要使用依赖插件的 Node模块(如zmq ,则需要确保这些模块与Meteor提供的可执行文件一起安装; 否则,你可能会遇到问题(虽然它可能工作,如果你安装相同版本的meteor使用的节点,似乎是node@0.10.40npm@1.4.28 ,虽然我不知道是否Meteor可执行文件是“普通的”节点/ npm,或者如果它们被修补)。

可执行文件可以在.meteor目录中find。 在OS X的情况下,它们位于~/.meteor/packages/meteor-tool/1.1.10/mt-os.osx.x86_64/dev_bundle/bin/ (尽pipe版本号可能会有所不同,我想)。

确保使用Meteor可执行文件而不是全局安装的Node / npm的简单方法,可以将该目录添加到$PATH的开头:

 $ export PATH=~/.meteor/packages/meteor-tool/1.1.10/mt-os.osx.x86_64/dev_bundle/bin/:$PATH 

之后,在同一个shell会话中, nodenpm现在应该指向Meteor提供的版本,并且可以使用它们来安装插件:

 $ npm install zmq 

我对这个错误的理解是用于安装/运行node.js代码的节点版本之间不匹配。

我有这个问题,因为我npm安装节点5,但我的运行configuration节点0.11.something。

我切换我的运行configuration使用节点5,问题就消失了。