问题描述
在Mac上运行打包的应用程序时,开发人员控制台出现以下错误。本地节点模块(addon.node)可以加载,但不能加载dylib。
Uncaught Error: Cannot open ./addon.node: Error: dlopen(./addon.node,1): Library not loaded: Core.dylib
Referenced from: /Users/Camera/Documents/myapp/dist/mac/myapp.app/Contents/Frameworks/addon.node
Reason: image not found
at Object.<anonymous> (main.js:3)
at Object.<anonymous> (main.js:3)
at n (main.js:1)
at Module.<anonymous> (main.js:306)
at n (main.js:1)
at main.js:1
at main.js:1
binding.gyp
"targets": [{
"target_name": "addon",...
'conditions': [
['OS=="mac"',{
...
'library_dirs': [
"/usr/local/lib","'$(CORE_DIR)'/lib"
],"link_settings": {
"libraries": [
"-L'$(CORE_DIR)'/lib",],},'libraries': [
"-lCore"
],"copies":[{
'destination': './','files': [
"$(CORE_DIR)/lib/Core.dylib"
]
}],'xcode_settings': {
'GCC_ENABLE_CPP_RTTI': 'YES','GCC_ENABLE_CPP_EXCEPTIONS': 'YES','CLANG_CXX_LIBRARY': 'libc++',}
}],
我在CORE_DIR / lib中有这些静态和动态库
Core.a
Core.dylib
何时可以工作
通过运行打包应用程序内部的可执行文件,在终端中运行该应用程序。 但是Core.dylib应该出现在终端当前目录的同一目录中。
./dist/mac/myapp.app/Contents/MacOS/myapp
但是如何通过双击运行来获得这项工作?我已经在打包的应用程序中尽可能复制了Core.dylib,但是没有任何效果。
谢谢
解决方法
我在将项目从 Windows 转移到 mac 时遇到了同样的问题。
只需删除 node_modules 并重新安装它对我有用