2014-02-19 92 views
1

在过去的几个小时内,我试图在Windows上运行node-gd。我尝试了几次回购,最后找到https://github.com/mikesmullin/node-gd。当我运行在窗口上安装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

+0

检查这个https://github.com/mikesmullin/node-gd/issues/14 – vinayr

+0

@vinayr现在我就在'LINK:致命错误LNK1181:无法打开输入文件 'gd.lib'[ ... \ node_m odules \ node-gd \ build \ node_gd.vcxproj]' – Deepsy

+0

@Deepsy:你有没有找到任何解决方案? – darma

回答

1

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

这里假设你已经有了GD库(https://github.com/libgd/libgd/releases),并且会使用GD DLL。

  1. https://www.npmjs.com/package/node-gd

    注意下载节点-GD包装:不要运行“NPM安装节点GD”从一个提示,因为这会自动下载并运行安装。您需要先对软件包进行一些本地更改,然后在本地进行安装。

  2. 提取后,打开binding.gyp文件,例如,位于(downloads_folder)\节点-GD \ binding.gyp

  3. 改变这一行:

    "libraries": ["-lgd"], 
    

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

    "libraries": ["-llibgd"], 
    
  4. 添加GD源路径 “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. 如果您尝试使用节点-GD在这一点上(通过要求),你会得到“模块无法找到“的错误OP正在上面。问题不在于找不到模块,而是因为找不到GD DLL(错误信息很糟糕)。因此,GD .dll文件复制到节点-GD输出目录(它需要旁边刚刚建造的节点-GD二进制文件),例如:

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

+0

所以我浏览了我的旧问题,发现我没有标记这个。我会将此标记为答案,因为这是一个可能的解决方案。感谢您的努力。 – Deepsy