2015-04-21 2 views
12

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

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

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

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

+0

Возможно, связано с http://stackoverflow.com/a/16216870/1938163 –

+0

@MarcoA. Да. Я попробовал опцию 'libraries' -L с относительным и абсолютным путём, но не повезло :( –

+0

Это сообщение об ошибке, которое я получаю:' Библиотека не загружена: @ rpath/cares.dylib' –

ответ

7

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

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

+1

Better один "библиотеки": ["-Wl, -rpath,

1

Я имел успех получение относительного пути в 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

Смежные вопросы