最近接触node-gyp交叉编译,在mac上使用abandonware/noble,从来没接触过node-gyp,跟踪下代码,得到以下的随笔。
日志打印
.mm文件打印日志
#include <iostream>
std::cout << "scan 3333111" << std::endl;
NSLog(@"[dcBoxesFound count]: %lu", [dcBoxesFound count]);
.cc文件打印日志
#include <iostream>
std::cout << "Emit::RadioState 执行" << std::endl;
.js文件打印日志
console.log(`lib/noble.js this.emit('stateChange', state);${state}`);
调用链
后台运行-事件响应掉用
- 函数流转在文件中的流程是: ble_manager.mm --> callback.cc --> node.js ---> test.js
发送-响应模式调用
- 函数流转在文件中的流程是: test.js --> node.js --> node_mac.mm --> ble_manager.mm --> callback.cc --> node.js ---> test.js
自己写一个问答模式的调用
- 函数流转在文件中的流程是: test.js --> node.js --> node_mac.mm --> ble_manager.mm --> callback.cc --> node.js ---> test.js