[英]Cause of “dyld: lazy symbol binding failed: Symbol not found:” error from 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重建
卸载zmq并重新安装
卸载,重新安装,然后重新构建npm
删除node_modules目录,然后重新安装zmq以排除任何可能的程序包冲突。 (此处引用: dyld:惰性符号绑定失败:未找到符号:_node_module_register )
除非绝对必要,否则我不愿测试可能的问题(因为它需要完全升级。我使用的是较旧的计算机。):
警告:错误:dyld:惰性符号绑定失败:找不到符号:_objc_autoreleasePoolPush
Git> dyld:懒惰的符号绑定失败:找不到符号:_iconv_open
在较新版本的OSX下编译的zmq? (我使用的是10.9.5。除非绝对必要,否则升级不是一个可行的选择。)
如果这是问题...。
nm未找到符号时,处理“ dyld:惰性符号绑定失败:未找到符号”错误
...我如何将库静态链接到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
(评论摘要,对于其他感兴趣的人;由于我没有任何亲身体验Meteor的经验,我的解决方案可能是错误的,在这种情况下,请随时纠正我:)
流星带有自己的node
和npm
可执行文件集。 如果要使用依赖于插件的 Node模块(例如zmq
,则需要确保这些模块与Meteor提供的可执行文件一起安装; 否则,您可能会遇到问题(尽管如果安装与Meteor使用的相同版本的Node,它可能会起作用,它们似乎是node@0.10.40
和npm@1.4.28
,尽管我不知道Meteor可执行文件是“普通”节点/ npm或已修补)。
可执行文件可以在.meteor
目录中找到。 对于OS X,它们位于~/.meteor/packages/meteor-tool/1.1.10/mt-os.osx.x86_64/dev_bundle/bin/
(尽管我认为版本号可能会有所不同)。
确保使用Meteor可执行文件而不是全局安装的Node / npm的简便方法是,可以将该目录添加到$PATH
的开头:
$ export PATH=~/.meteor/packages/meteor-tool/1.1.10/mt-os.osx.x86_64/dev_bundle/bin/:$PATH
之后,在同一个Shell会话中, node
和npm
现在都应指向流星提供的版本,您可以使用它们安装插件:
$ npm install zmq
我对此错误的理解是,用于安装/运行node.js代码的节点版本之间不匹配。
我遇到这个问题是因为我在节点5上安装了npm,但是我的运行配置是节点0.11.something。
我将运行配置切换为使用节点5,问题消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.