简体   繁体   English

ZMQ构建出现“ dyld:懒惰的符号绑定失败:找不到符号:”的原因?

[英]Cause of “dyld: lazy symbol binding failed: Symbol not found:” error from ZMQ build?

I'm working on a Meteor app locally on OSX 10.9.5. 我正在OSX 10.9.5上本地开发Meteor应用程序。

I'm getting this error: 我收到此错误:

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

I believe it has something to do with the zmq package. 我相信这与zmq软件包有关。 More on from the error: 错误的更多信息:

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

I've tried: 我试过了:

Possible problems I'd rather not test unless absolutely necessary (as it requires full upgrade. I'm on an older computer.): 除非绝对必要,否则我不愿测试可能的问题(因为它需要完全升级。我使用的是较旧的计算机。):

Warning: Error: dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush 警告:错误:dyld:惰性符号绑定失败:找不到符号:_objc_autoreleasePoolPush

Git > dyld: lazy symbol binding failed: Symbol not found: _iconv_open Git> dyld:懒惰的符号绑定失败:找不到符号:_iconv_open

A zmq compiled under a newer version of OSX? 在较新版本的OSX下编译的zmq? (I'm using 10.9.5. Upgrading isn't a viable option unless absolutely necessary.) (我使用的是10.9.5。除非绝对必要,否则升级不是一个可行的选择。)

If this is the problem.... 如果这是问题...。

Handling "dyld: lazy symbol binding failed: Symbol not found" error when nm does not find symbol nm未找到符号时,处理“ dyld:惰性符号绑定失败:未找到符号”错误

...How would I statically link the library to zmq??? ...我如何将库静态链接到zmq ???

The full error: 完整错误:

=> 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

I've been trying to solve this for over a day now. 我已经尝试解决这一问题超过一天了。 Any help would be appreciated. 任何帮助,将不胜感激。

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

$ meteor npm install

(recap of the comments, for others that are interested; since I don't have any hands-on Meteor experience, my solution may be wrong, in which case, feel free to correct me :) (评论摘要,对于其他感兴趣的人;由于我没有任何亲身体验Meteor的经验,我的解决方案可能是错误的,在这种情况下,请随时纠正我:)

Meteor comes with its own set of node and npm executables. 流星带有自己的nodenpm可执行文件集。 If you want to use Node modules that depend on addons , like zmq , you need to make sure that these modules are installed with the Meteor-supplied executables; 如果要使用依赖于插件的 Node模块(例如zmq ,则需要确保这些模块与Meteor提供的可执行文件一起安装; otherwise, you may run into issues (although it may work if you install the same version of Node that Meteor uses, which seem to be node@0.10.40 and npm@1.4.28 , although I don't know if the Meteor executables are "plain" Node/npm or if they are patched). 否则,您可能会遇到问题(尽管如果安装与Meteor使用的相同版本的Node,它可能会起作用,它们似乎是node@0.10.40npm@1.4.28 ,尽管我不知道Meteor可执行文件是“普通”节点/ npm或已修补)。

The executables can be found within the .meteor directory. 可执行文件可以在.meteor目录中找到。 In case of OS X, they are located in ~/.meteor/packages/meteor-tool/1.1.10/mt-os.osx.x86_64/dev_bundle/bin/ (although the version number may vary, I suppose). 对于OS X,它们位于~/.meteor/packages/meteor-tool/1.1.10/mt-os.osx.x86_64/dev_bundle/bin/ (尽管我认为版本号可能会有所不同)。

An easy way for making sure that the Meteor executables are used instead of a globally installed Node/npm, you can add that directory to the start of your $PATH : 确保使用Meteor可执行文件而不是全局安装的Node / npm的简便方法是,可以将该目录添加到$PATH的开头:

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

After that, in the same shell session, both node and npm should now point to the Meteor-supplied versions and you can install addons using them: 之后,在同一个Shell会话中, nodenpm现在都应指向流星提供的版本,您可以使用它们安装插件:

$ npm install zmq

My understanding of this error is that there is a mismatch between node versions used to install/run node.js code. 我对此错误的理解是,用于安装/运行node.js代码的节点版本之间不匹配。

I had this issue because I npm installed with node 5, but my run config was node 0.11.something. 我遇到这个问题是因为我在节点5上安装了npm,但是我的运行配置是节点0.11.something。

I switched my run config to use node 5, and the problem went away. 我将运行配置切换为使用节点5,问题消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 dyld:惰性符号绑定失败 - dyld: lazy symbol binding failed 从node.js应用程序连接到mysql,错误:“ dyld:惰性符号绑定失败:找不到符号:_mysql_init” - Connect to mysql from node.js app, error: “dyld: lazy symbol binding failed: Symbol not found: _mysql_init” 警告:错误:dyld:惰性符号绑定失败:找不到符号:_objc_autoreleasePoolPush - Warning: Error: dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush dyld:惰性符号绑定失败,opencv - dyld: lazy symbol binding failed, opencv dyld:懒惰的符号绑定失败:找不到符号:_node_module_register - dyld: lazy symbol binding failed: Symbol not found: _node_module_register OSX 10.7.5上的node-gyp - dyld:惰性符号绑定失败:找不到符号 - node-gyp on OSX 10.7.5 — dyld: lazy symbol binding failed: Symbol not found dyld:懒惰的符号绑定失败:找不到符号。 预期在:平面命名空间 - dyld: lazy symbol binding failed: Symbol not found. Expected in: flat namespace 命令行工具总是崩溃“dyld:惰性符号绑定失败:找不到符号:____chkstk_darwin” - command line tool it always crashes "dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin" dyld:惰性符号绑定失败:找不到符号:____chkstk_darwin macOS High sierra 10.13.6 - dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin macOS High sierra 10.13.6 惰性符号绑定失败:找不到符号:_FSEventStreamCreate - lazy symbol binding failed: Symbol not found: _FSEventStreamCreate
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM