В binding.gyp
Я хочу, чтобы установить, как это:Использование узла лавочка предопределенной переменной PRODUCT_DIR
"libraries": [ "-Wl,-rpath,<working directory>/build/Release/" ]
Я использую следующую конфигурацию, чтобы сделать то же самое:
"libraries": [ "-Wl,-rpath,<!(pwd)/build/Release/" ]
это работает но проблема заключается в том, что он не будет работать в Windows или там, где pwd
недоступен, а также это не самый лучший вариант, поскольку уже существует предопределенный var iable PRODUCT_DIR
доступно в node-gyp
для этого. Странно я не могу использовать эту переменную PRODUCT_DIR
.
Я пробовал следующие варианты, но не повезло. ошибка говорит Library not loaded: @rpath/<lib>.dylib
(RPATH не получает набор):
"libraries": [ "-Wl,-rpath,>(PRODUCT_DIR)/build/Release/" ]
"libraries": [ "-Wl,-rpath,<(PRODUCT_DIR)/build/Release/" ]
"libraries": [ "-Wl,-rpath,>(PRODUCT_DIR)"]
"libraries": [ "-Wl,-rpath,<(PRODUCT_DIR)"]
Когда я попробовал печать на "<!(echo <(PRODUCT_DIR) 1>&2)"
он говорит builddir: command not found
. Похоже, переменная имеет значение builddir. Не следует ли печатать целевой каталог вместо builddir? или builddir означает что-то для компилятора?
Я не использую эту переменную должным образом или есть какая-либо другая переменная, которую я должен использовать?
Вы пробовали '$ (PRODUCT_DIR)'? Возможный дубликат http://stackoverflow.com/questions/17023442/referring-to-environment-variables-from-binding-gyp-node-gyp –
Пробовал, но не повезло :(Если я определяю пользовательскую переменную, я могу использовать его '<(user_defined_variable_dir)', но предварительно определенная переменная 'PRODUCT_DIR' не работает. –
К счастью, в Windows мой' addon' работает даже без установки 'rpath' :) Итак, теперь я добавил условие и установил' rpath' путем выполнения 'pwd' где' 'OS! = 'win'" '. https://github.com/royalpinto/node-cares/blob/master/binding.gyp –