我有一些针对 node.js 模块的 C++ 代码,它是为 node 0.8 及其增强的 libuv 编写的。具体来说,我正在使用 uv_mutex_* 函数,这些函数在节点 0.6 中包含的 libuv 中不存在。我想有条件地嵌入这些函数的 pthreads 等价物,但仅限于在旧版本上构建时。
在节点 0.8 上构建时,这应该给我一个跨平台构建(Windows 和 Linux),如果节点版本是 0.6,它应该给我一个正常运行的 Linux 版本。
节点版本是否有预处理器#define?我找不到一个。我能想到的最好的办法是在 binding.gyp 中做一些笨拙的事情,以尝试根据 <@(node_root) 猜测版本,并以某种方式将其按摩为“定义”值。肯定有更好的办法!