簡體   English   中英

Node-gyp / C ++導入共享庫(.so)

[英]Node-gyp/C++ import shared library (.so)

導入共享庫(.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"
]

至少插件正在編譯而沒有錯誤和警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM