Как должен быть написан binding.gyp для создания дополнения Node.js с OpenNI?

Я пытаюсь создать аддон 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/
  • Скачанные и извлеченные OpenNI
  • Скопировано содержимое Redist каталог в onijs/ (Redist есть каталог OpenNI2 так что теперь у меня есть onijs/OpenNI2 с некоторыми драйверами в нем).
  • Скопировал Includes папка в onijs/src/
  • Скопировал основной «Hello World» в onijs/src/main.cpp
  • Разместил мой binding.gyp файл в onijs/
  • В терминале я сделал cd /pathTo/onijs/ и побежал node-gyp configure, который работал нормально
  • Потом я побежал node-gyp buildи это сгорело.

Ошибка msgstr «ld: библиотека не найдена для -lOpenNI2.»

Я принимаю неправильный подход здесь? Я пробовал без -l а также -Wl, -rpath ./ в объявлении библиотеки, но он все еще не строит.

2

Решение

Пара быстрых вариантов

Если OpenNI2 — это одна динамическая библиотека, вы можете добавить ее непосредственно в список библиотек.

/path/to/libOpenNI2_file

Если OpenNI2 является частью пакета, вы можете использовать pkg-config для получения библиотек с

pkg-config --libs OpenNI2

Здесь больше документации об этой конкретной библиотеке OpenNI

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]