1

我正在 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

我试过了:

除非绝对必要,否则我宁愿不测试可能的问题(因为它需要完全升级。我使用的是旧计算机。):

警告:错误: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

我已经尝试解决这个问题超过一天了。任何帮助,将不胜感激。

4

3 回答 3

4

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

$ meteor npm install
于 2016-03-30T13:57:40.690 回答
1

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

我遇到了这个问题,因为我使用节点 5 安装了 npm,但我的运行配置是节点 0.11.something。

我将运行配置切换为使用节点 5,问题就消失了。

于 2016-04-13T17:24:10.113 回答
0

(回顾评论,对于其他感兴趣的人;由于我没有任何实际的 Meteor 经验,我的解决方案可能是错误的,在这种情况下,请随时纠正我 :)

Meteor 带有自己的一套node可执行npm文件。如果你想使用依赖于插件的 Node 模块,比如zmq,你需要确保这些模块与 Meteor 提供的可执行文件一起安装;否则,您可能会遇到问题(尽管如果您安装与 Meteor 使用的相同版本的 Node,它可能会起作用,这似乎是node@0.10.40and npm@1.4.28,尽管我不知道 Meteor 可执行文件是“普通”Node/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 会话中,两者nodenpm现在都应该指向 Meteor 提供的版本,您可以使用它们安装插件:

$ npm install zmq
于 2015-12-03T08:59:16.037 回答