我有一个与 native Node 模块、静态和动态库捆绑在一起的 Electron 项目。
在 mac 上运行打包的应用程序时,我在开发者控制台中遇到以下错误。 native Node 模块(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
绑定(bind).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 并重新安装它对我有用
关于node.js - Electron Node -Gyp 库未加载 : dylib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63604706/