我有一个简单的binding.gyp文件,用于构建我的node.js扩展.我想更改库"mylib"的链接方法并静态链接它而不是使用共享库.
{
"targets": [
{
"target_name": "myext",
"sources": [
"code/main.cpp",
"code/load.cpp",
"include/load.h"
],
"include_dirs": [
"include", "../Library/include"
],
"libraries": [
"-lmylib", "-L/home/admin/MyLib/Library/binaries/linux/Release"
],
"cflags!": [ "-fno-exceptions" ],
"cflags": [ "-std=c++11" ],
"cflags_cc!": [ "-fno-exceptions" ]
}
]
}
Run Code Online (Sandbox Code Playgroud)
mylib的静态和共享版本位于同一目录中:
# ls /home/admin/MyLib/Library/binaries/linux/Release
libmylib.a libmylib.so
Run Code Online (Sandbox Code Playgroud)
我想静态链接以避免库安装/加载问题.
我正在尝试在我的Windows 7机器上构建一个Node C++插件,它使用了Boost库中的一些类.但是,跑完之后
node-gyp configure
Run Code Online (Sandbox Code Playgroud)
成功的,我在运行时不断遭到缺少的头文件的攻击
node-gyp build
Run Code Online (Sandbox Code Playgroud)
与我包括的各种Boost标题有关.
我尝试在"配置"创建的Visual Studio项目中手动设置include和library目录,但无济于事.
究竟如何定义包含node-gyp的目录?
[编辑]在搞乱了node-gyp但收效甚微之后,我探索了通过Visual Studio构建Node模块,结果,经过几个小时,它终于开始工作了.谢谢你的帮助.