Импорт общей библиотеки (.so) кажется непростой задачей. Я пытался следовать инструкциям в этом Почта, но у меня действительно не получается заставить его работать. Сборка без библиотеки RF24 работает. Следуя их инструкциям по сборке, в папке /usr/local/lib были созданы следующие наборы файлов.
librf24-bcm.so librf24.so librf24.so.1 librf24.so.1.3
librf24.so.1.3.1 node_modules python2.7 python3.5
В свой файл .cpp я включаю такую библиотеку
#include <RF24.h> // also tested "" instead of <>
Мой binding.gyp выглядит так
{
"targets": [
{
"includes": [ "../auto.gypi" ],
"sources": [ "../../src/myfile.cpp" ],
"include_dirs": [ "../../src" ],
"library_dirs": [ "/usr/local/lib" ],
"libraries": [ "-llibrf24" ],
"cflags!": [ "-fno-exceptions" ],
"cflags": [ "-std=c++11", "-fpermissive" ],
"cflags_cc!": [ "-fno-rtti" ]
}
],
"includes": [
"../auto-top.gypi"
]
}
Ошибка компиляции
myfile.cpp:2:18: fatal error: RF24.h: No such file or directory
Я также пробовал использовать полные имена файлов в разделе библиотеки, например. librf24.so.1.3.1 и без флага -l. Также переключил запись library_dirs на include_dirs. Все та же ошибка.





По этому статья я смог разобраться. Сборка RF24 также записала соответствующие файлы заголовков в /user/local/include/RF24.
Обновлен binding.gyp до
"include_dirs": [
"../../src",
"/usr/local/include/RF24"
],
"libraries": [
"/usr/local/lib/librf24.so.1.3.1"
]
По крайней мере, аддон компилируется без ошибок и предупреждений.