写c++扩展的时候,怎么样让node-gyp找到需要的头文件?
发布于 9 年前 作者 hwoarangzk 8965 次浏览 最后一次编辑是 8 年前 来自 问答

我是在win7上装的ubuntunode源码放在~/nodejs下的,~/nodejs/include/node文件夹里有很多头文件比如v8.h, node.h等,然后我在~/hello里写了binding.gyphello.cchello.cc就是官网上那个addon的例子,node-gyp configure的时候没有问题,但是node-gyp build的时候说node.h找不到。我在binding.gyp添加了libraries指向~/nodejs/include/node的,但还是不行,只有我把所有的头文件直接copy到~/hello文件夹下才可以。请问有什么配置能让我不copy这些头文件到当前的项目里去么?能够直接指向nodejsinclude/node目录吗?

4 回复

编译安装node的时候会把相关源码移动到你的系统目录,include的规则是在找不到相关头文件的时候去系统目录查找的

@showen 我下载了node的tar.gz包,解压了,然后就没做什么动作了,是这里还缺少什么吗?我刚接触linux

@hwoarangzk
#include <xxx>直接到系统指定目录去查找头文件 #include "xxx"会先到当前目录查找头文件 如果没找到则到系统指定目录查找。

你的node.h不在系统指定的目录 你可以把你的node源码路径加到系统环境变量PATH里 或者把node源码放到/usr/src里面 另外不了解libraries设置的具体用处 你用相对路径设置一下libraries试试

多谢!

回到顶部