Я пытаюсь создать аддон Node.js, который использует OpenNI. Я раньше не использовал Node-gyp, поэтому я пытаюсь настроить файл binding.gyp, чтобы он включал библиотеку OpenNI как часть сборки. Код, который я на самом деле собираю, это просто Пример Hello World.
Я использую файл binding.gyp, основанный на NUIMotion на Github, который делает что-то подобное. Вот мой:
{
"targets": [
{
"target_name": "onijs",
"sources": [
"src/main.cpp" ],
"include_dirs": [ "./src/Include" ],
"libraries": [ "-lOpenNI2", "-Wl,-rpath ./" ]
}
]
}
Вот что я сделал (работая в OSX):
onijs/
Redist
каталог в onijs/
(Redist
есть каталог OpenNI2
так что теперь у меня есть onijs/OpenNI2
с некоторыми драйверами в нем).Includes
папка в onijs/src/
onijs/src/main.cpp
binding.gyp
файл в onijs/
cd /pathTo/onijs/
и побежал node-gyp configure
, который работал нормальноnode-gyp build
и это сгорело.Ошибка msgstr «ld: библиотека не найдена для -lOpenNI2.»
Я принимаю неправильный подход здесь? Я пробовал без -l
а также -Wl, -rpath ./
в объявлении библиотеки, но он все еще не строит.
Пара быстрых вариантов
Если OpenNI2 — это одна динамическая библиотека, вы можете добавить ее непосредственно в список библиотек.
/path/to/libOpenNI2_file
Если OpenNI2 является частью пакета, вы можете использовать pkg-config для получения библиотек с
pkg-config --libs OpenNI2
Здесь больше документации об этой конкретной библиотеке OpenNI
Других решений пока нет …