你好,我是一个C++的新手,试图修改一个现有的本机节点模块。
我试图在模块内添加couts来打印我认为对我有用的信息。
NAN_METHOD(Context2d::SetFillRule){
Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
cairo_t *ctx = context->context();
String::Utf8Value str(info[0]);
cout << "set method called";
...
}
前一个方法可以工作,但是cout从来没有显示过。它在node-gyp构建过程中丢失/显示了吗?我做错了什么吗?有什么方法可以完成它吗?
5条答案
按热度按时间polhcujo1#
我正在学习N-API为nodejs项目制作插件,但遇到了同样的问题。添加
#include <iostream>
使std::cout
可以在我的代码中使用。当我像对任何nodejs项目一样调用node path_to_file.js
运行代码时,它成功地将我的数据打印到控制台。我知道您正在使用NAN,并且可能很久以前就已经克服了这个问题。但我觉得给予这个答案很重要,因为这个答案出现在我的搜索结果中,而对于像我这样的初学者来说,没有一个好的答案。xj3cbfub2#
我建议将其写入日志文件(重定向std::cout很麻烦)。
eufgjt7s3#
Node.js C++加载项中的
std::cout <<
通常应该打印到控制台(node
进程的stdout
)。如果它没有出现,很可能是分段错误,因为内存(示例生命周期)管理不善。它会 * 静默地 * 终止整个
node
进程。w8biq8rn4#
cout << "some text"
只有在你直接从命令行启动你的二进制文件时才能工作。我认为情况并非如此,因为你似乎是在节点内部使用它。所以你应该从节点库中找到一些日志输出方法。ibrsph3r5#
如果它是在windows中,你可以尝试制作另一个控制台窗口。然后将你的contex绑定到那个窗口,并将打印重定向到那里。
或写入文件。