在windows上安装node-gd

在过去的几个小时里,我试图在windows上运行node-gd 。 我已经尝试了几次回购,最后find了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,但是当我使用它时,几乎所有的信息都是关于php_gd而不是lib本身。

我应该在哪里放gd文件?

编辑:我编译它! 现在我得到:

在这里输入图像说明

我最近经历了这个过程,遇到了同样的问题,但没有find任何解决问题的步骤。 我意识到这个线程现在已经有近1.5年的历史了,但是我会在这里发布完整的安装步骤,以帮助其他人。

这假设你已经build立了GD库( https://github.com/libgd/libgd/releases ),并将使用GD DLL。

  1. https://www.npmjs.com/package/node-gd下载node-gd软件包

    注意: 不要在提示符下运行“npm install node-gd”,因为这会自动下载并运行安装。 您需要先对软件包进行一些本地更改,然后在本地进行安装。

  2. 解压后,打开binding.gyp文件,例如位于(downloads_folder)\ node-gd \ binding.gyp

  3. 改变这一行:

     "libraries": ["-lgd"], 

    到已编译的GD DLL导入库的名称,例如“libgd.lib”:

     "libraries": ["-llibgd"], 
  4. 将GD源path添加到“include_dirs”,例如:

     "include_dirs": [ "<!(node -e \"require('nan')\")", "(path_to_gd)/src" # <-- THIS ENTRY ], 
  5. 将GD编译的库目录添加到窗口的“条件”字段下的VS链接器设置,例如:

    注意:出于某种原因,我无法通过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"], }, }, }], ] 
  6. 保存binding.gyp文件,并在本地安装包,例如:

     npm install (downloads_folder)\node-gd 
  7. 如果你尝试在这一点上使用node-gd(通过require),你会得到OP得到的“模块无法find”的错误。 问题不是找不到模块,而是找不到GD DLL(错误信息太可怕了)。 因此,将GD .dll文件复制到node-gd输出目录(它需要位于刚构build的node-gd二进制文件旁边),例如:

     copy (path_to_gd)\build_msvc12_x64\libgd.dll (path_to_node_modules)\node-gd\build\Release\libgd.dll 
  8. 应该是这样! 希望在这一点上一切正常。