[英]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.