【问题标题】:Electron node-Gyp Library not loaded: dylib电子节点-Gyp 库未加载:dylib
【发布时间】:2021-02-28 18:45:51
【问题描述】:

我有一个与本机节点模块、静态和动态库捆绑在一起的电子项目。

在 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,但没有任何效果。

谢谢

【问题讨论】:

  • 我能够通过使用 install_name_tool 更改 addon.node 库安装名称来运行该应用程序。 install_name_tool -change Core.dylib @rpath/Core.dylib addon.node 现在需要弄清楚如何将它放入binding.gyp

标签: node.js macos electron node-gyp dylib


【解决方案1】:

我在将项目从 windows 移动到 mac 时遇到了同样的问题。

只需删除 node_modules 并重新安装它对我有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-18
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多