[英]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.