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

时间:2018-05-25 14:15:57

标签: c++ binding static-libraries node-gyp

导入共享库(.so)似乎不是一件容易的事。我试图按照post中的说明操作,但我真的无法让它发挥作用。没有库RF24的建筑工作正常。按照他们的构建说明生成librf24-bcm.so librf24.so librf24.so.1 librf24.so.1.3 librf24.so.1.3.1 node_modules python2.7 python3.5 文件夹

中的以下文件集
#include <RF24.h> // also tested "" instead of <>

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

{
  "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"
  ]
}

我的 binding.gyp 看起来像这样

myfile.cpp:2:18: fatal error: RF24.h: No such file or directory

编译错误是

librf24.so.1.3.1

我还尝试使用 libraries 部分中的文件完整名称,例如: -l,没有{{1}}标记。还将 library_dirs 条目切换为 include_dirs 。仍然是同样的错误。

1 个答案:

答案 0 :(得分:1)

根据这个article,我能够弄明白。 RF24版本还将相应的头文件写入webkit

binding.gyp 更新为

/user/local/include/RF24

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