在过去的几个小时里,我正试图在Windows上运行node-gd
。我尝试过几次回购,最后找到了https://github.com/mikesmullin/node-gd。我跑的时候
`npm install node-gd`
我收到以下错误:
node-gyp rebuild
...node_modules\node-gd>node "C:\Program Files\nodejs\node_modules\npm\
bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
node-gd.cpp
..\cpp\node-gd.cpp(17): fatal error C1083: Cannot open include file: 'gd.h': No
such file or directory [...\node_modules\node-gd\build\node_gd.vcxproj
]
我以为我应该安装gd
lib,但是当我用Google搜索时,几乎所有信息都与php_gd
无关,而不是关于lib本身。
我应该在哪里放置gd
个文件?
编辑:我编译了它!现在我得到了:
答案 0 :(得分:2)
我最近经历了这个过程并遇到了同样的问题,但是无法找到解决问题的任何已发布步骤。我意识到这个帖子已经有近1.5年的历史了,但是我会在这里发布完整的安装步骤,以便有机会帮助别人。
这假设您已经构建了GD库(https://github.com/libgd/libgd/releases),并且将使用GD DLL。
从https://www.npmjs.com/package/node-gd
下载node-gd包注意:不要运行" npm install node-gd"从提示符,因为这将自动下载并运行安装。您需要先对包进行一些本地更改,然后在本地安装。
提取后,打开binding.gyp文件,例如位于(downloads_folder)\ node-gd \ binding.gyp
更改此行:
"libraries": ["-lgd"],
到已编译的GD DLL导入库的名称,例如for" libgd.lib":
"libraries": ["-llibgd"],
将GD源路径添加到" include_dirs",例如:
"include_dirs": [
"<!(node -e \"require('nan')\")",
"(path_to_gd)/src" # <-- THIS ENTRY
],
将GD编译的库目录添加到&#34;条件&#34;下的VS链接器设置中。 Windows的字段,例如:
注意:出于某种原因,我无法通过gyp的传统绑定规范使库目录正常工作,所以我不得不求助于此......
"conditions": [
[ "OS=='freebsd'", {
"libraries": ["-L/usr/local/lib"],
"include_dirs": ["/usr/local/include"]
}],
[ "OS=='mac'", {
"libraries": ["-L/usr/local/lib", "-L/opt/local/lib"],
"include_dirs": ["/usr/local/include", "/opt/local/include"]
}],
[ "OS=='win'", { # <-- THIS ENTRY
"msvs_settings": {
"VCLinkerTool": {
"AdditionalOptions": ["/LIBPATH:(path_to_gd)/build_msvc12_x64"],
},
},
}],
]
保存binding.gyp文件,并在本地安装软件包,例如:
npm install (downloads_folder)\node-gd
如果您此时尝试使用node-gd(通过require),您将无法找到&#34;模块&#34; OP超越了错误。问题不在于模块无法找到,它无法找到GD DLL(错误信息很糟糕)。因此,将GD .dll文件复制到node-gd输出目录(它需要位于刚刚构建的node-gd二进制文件旁边),例如:
copy (path_to_gd)\build_msvc12_x64\libgd.dll (path_to_node_modules)\node-gd\build\Release\libgd.dll
那应该是它!希望此时一切正常。