Node-gyp/C++ 导入共享库 (.so)

ngf*_*ixl 8 c++ binding static-libraries node-gyp

导入共享库 (.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
Run Code Online (Sandbox Code Playgroud)

在我的 .cpp 文件中,我包含这样的库

librf24-bcm.so        librf24.so        librf24.so.1     librf24.so.1.3  
librf24.so.1.3.1      node_modules      python2.7        python3.5
Run Code Online (Sandbox Code Playgroud)

我的binding.gyp看起来像这样

#include <RF24.h> // also tested "" instead of <>
Run Code Online (Sandbox Code Playgroud)

编译错误是

myfile.cpp:2:18: fatal error: RF24.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我还尝试使用部分中的文件完整名称,例如librf24.so.1.3.1,不带-l标志。还将 library_dirs条目切换为include_dirs。还是一样的错误。

ngf*_*ixl 6

根据这篇文章,我能够弄清楚。RF24 版本还将相应的头文件写入/user/local/include/RF24.

binding.gyp更新为

"include_dirs": [
  "../../src",
  "/usr/local/include/RF24"
],
"libraries": [
  "/usr/local/lib/librf24.so.1.3.1"
]
Run Code Online (Sandbox Code Playgroud)

至少插件编译没有错误和警告。