зависимости библиотеки ссылок node-gyp во время сборки

мой nodejs аддон использует cares библиотеки и binding.gyp и dependencies атрибут, который указывает на это. Теперь, когда мне нужно бежать addon, Я должен экспортировать LD_LIBRARY_PATH переменной.

есть ли способ настроить это в binding.gyp Так что каждый раз, когда мне не нужно LD_LIBRARY_PATH. (Связывание во время сборки)

настройка зависимостей в привязке.джип:"dependencies": [ "deps/cares/cares.gyp:cares" ]

Ex экспорт:export LD_LIBRARY_PATH=build/Release

3 ответов


"libraries": [ "-Wl,-rpath,./build/Release/" ]

работал для меня на Mac, а также Linux(Ubuntu).


мой ответ как добавить зависимость в статическую библиотеку в привязке.gyp node-gyp для узла.расширение js кажется, применяется и здесь, и должен быть кросс-платформенным.

короче говоря, он использует module_root_dir и строит абсолютный путь. Пример:

"libraries": [
    "-lcares",
    "-L<(module_root_dir)/build/Release/"
]

мне удалось получить относительный путь в Ubuntu & Debian, используя следующее binding.gyp строку:

"libraries": [ "../lib/somelib/somelib.a" ]

моя структура папок выглядит так:

|--binding.gyp
|--app.cc
|--lib
   |--somelib
      |--somelib.a

я получил метод (несколько косвенно) отсюда: https://github.com/nodejs/node-gyp/issues/49