Добавление библиотеки в модуль узла через node-gyp - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь построить модуль узла через node-gyp.

Это мой binding.gyp файл:

{
  "targets": [
    {
      "target_name": "voxygen",
      "sources": [ "addon/voxygen.cc", "addon/baratinoo.h", "addon/tts.h", "addon/tts.cpp", "addon/baratinooio.h", "addon/baratinooio.cpp" ],
      "conditions": [
        ["OS==\"mac\"", {
          "libraries": [
            "<(module_root_dir)/lib/darwin/libbaratinoo.dylib"
          ]
        }],
        ["OS==\"linux\"", {
          "libraries": [
            "<(module_root_dir)/lib/linx64/libbaratinoo.so"
          ]
        }]
      ]
    }
  ]
}

Когда я запускаю node-gyp configure && node-gyp build, модуль узла генерируется правильно, но когда я пытаюсь загрузить его в свой проект узла, я получаю:

internal/modules/cjs/loader.js:800
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: dlopen(/xxx/build/Release/voxygen.node, 1): Library not loaded: libbaratinoo.dylib
  Referenced from: /xxx/build/Release/voxygen.node
  Reason: image not found

Как я могу убедиться, что модуль узла находит библиотеку, от которой он зависит?

Библиотека находится в: myProject/lib/<darwin|linx64>/libbaratinoo.<dylib|so>

Принимая во внимание, что модуль узла генерируется в myProject/build/Release/voxygen.node

...