【发布时间】:2018-05-22 04:01:28
【问题描述】:
我正在尝试使用 tesseract 库作为依赖项创建简单的节点插件,但我是 C++ 初学者。 完整代码在:https://github.com/q-nick/node-tesseract
binding.cc:
#include <node.h>
#include <v8.h>
// #include <tesseract/baseapi.h>
// #include <leptonica/allheaders.h>
void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Isolate* isolate = args.GetIsolate();
args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world"));
}
void init(v8::Local<v8::Object> exports) {
NODE_SET_METHOD(exports, "hello", Method);
}
NODE_MODULE(NODE_GYP_MODULE_NAME, init)
binding.gyp:
{
"targets": [
{
"target_name": "binding",
"sources": [
"src/binding.cc"
],
'defines': [ 'V8_DEPRECATION_WARNINGS=1' ],
'include_dirs': [
],
'libraries': [
# '-lpvt.cppan.demo.google.tesseract.libtesseract',
# '-lleptonica'
]
}
]
}
我找到了一个项目,它可以帮助我编译 tesseract、leptonica 等依赖项 - 它是 https://cppan.org/
不幸的是,我不知道如何将它与 node-gyp 构建过程联系起来。 CPPAN 有一个名为 cppan.yml 的配置文件(类似于 npm 中的 package.json)
cppan.yml:
dependencies:
pvt.cppan.demo.google.tesseract.libtesseract: master
pvt.cppan.demo.danbloomberg.leptonica: 1
我想通过一个命令构建我的节点插件和所有依赖项(如 tesseract)。并且不知道如何在node-gyp build中链接c++依赖
我想使用最新的 tesseract 版本,所以我不能使用预编译的库。目前,我在 Windows 环境中工作,但我希望它是一个跨平台的进程。
我的示例 GitHub 项目 (https://github.com/q-nick/node-tesseract) 在取消注释 tesseract 包含后必须成功编译。
如果有其他简单的方法可以做到这一点,请分享。
【问题讨论】:
标签: javascript c++ node.js node-gyp