Ответ 1
"libraries": [ "-Wl,-rpath,./build/Release/" ]
Работал для меня на Mac, а также на Linux (Ubuntu).
My nodejs
addon использует библиотеку cares
, а мой binding.gyp
имеет атрибут dependencies
, который указывает на это. Теперь, когда мне нужно запустить addon
, мне нужно экспортировать переменную LD_LIBRARY_PATH
.
Есть ли способ настроить это в binding.gyp
, чтобы каждый раз, когда мне не нужно было устанавливать LD_LIBRARY_PATH
. (Связывание во время сборки)
Настройка зависимостей в binding.gyp: "dependencies": [ "deps/cares/cares.gyp:cares" ]
Экспорт Ex: export LD_LIBRARY_PATH=build/Release
"libraries": [ "-Wl,-rpath,./build/Release/" ]
Работал для меня на Mac, а также на Linux (Ubuntu).
Мой ответ на как добавить зависимость от статической библиотеки в binding.gyp node -gyp для node.js extension, похоже, применим и здесь, и должна быть перекрестной платформой.
Короче говоря, он использует 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