在Windows上安装node-gd

时间:2014-02-19 22:11:22

标签: c++ node.js gd native node-gyp

在过去的几个小时里,我正试图在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个文件?

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

enter image description here

1 个答案:

答案 0 :(得分:2)

我最近经历了这个过程并遇到了同样的问题,但是无法找到解决问题的任何已发布步骤。我意识到这个帖子已经有近1.5年的历史了,但是我会在这里发布完整的安装步骤,以便有机会帮助别人。

这假设您已经构建了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导入库的名称,例如for" libgd.lib":

    "libraries": ["-llibgd"],
    
  4. 将GD源路径添加到" include_dirs",例如:

    "include_dirs": [
      "<!(node -e \"require('nan')\")",
      "(path_to_gd)/src" # <-- THIS ENTRY
    ],
    
  5. 将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"],
          },
        },
      }],
    ]
    
  6. 保存binding.gyp文件,并在本地安装软件包,例如:

    npm install (downloads_folder)\node-gd
    
  7. 如果您此时尝试使用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
    
  8. 那应该是它!希望此时一切正常。