• windows下尝试编写node模块


    1,首先参考http://www.cnblogs.com/yupeng/p/3469444.html写了一个模块

    2,按照指引运行

    F:Program Files odejsmymodule>node-gyp configure build

    奶奶的,一开始就少了一个node-gyp,上网一艘,原来这也是一个模块


    'node-gyp' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。

    F:Program Files odejsmymodule>npm install -g node-gyp

    安装模块,成功!
    C:UserscutepigAppDataRoaming pm ode-gyp -> C:UserscutepigAppDataRoamin
    g pm ode_modules ode-gypin ode-gyp.js
    node-gyp@3.3.1 C:UserscutepigAppDataRoaming pm ode_modules ode-gyp
    ├── graceful-fs@4.1.3
    ├── osenv@0.1.3 (os-tmpdir@1.0.1, os-homedir@1.0.1)
    ├── semver@5.1.0
    ├── nopt@3.0.6 (abbrev@1.0.7)
    ├── fstream@1.0.8 (inherits@2.0.1)
    ├── which@1.2.4 (isexe@1.1.2, is-absolute@0.1.7)
    ├── minimatch@1.0.0 (sigmund@1.0.1, lru-cache@2.7.3)
    ├── mkdirp@0.5.1 (minimist@0.0.8)
    ├── glob@4.5.3 (inherits@2.0.1, inflight@1.0.4, once@1.3.3, minimatch@2.0.10)

    ├── rimraf@2.5.2 (glob@7.0.3)
    ├── tar@2.2.1 (inherits@2.0.1, block-stream@0.0.8)
    ├── npmlog@2.0.2 (ansi@0.3.1, gauge@1.2.7, are-we-there-yet@1.0.6)
    ├── path-array@1.0.1 (array-index@1.0.0)
    └── request@2.69.0 (is-typedarray@1.0.0, aws-sign2@0.6.0, forever-agent@0.6.1
    , caseless@0.11.0, stringstream@0.0.5, tunnel-agent@0.4.2, oauth-sign@0.8.1, iss
    tream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.0, node-uuid@1.4.7, qs@6.0.2,
    combined-stream@1.0.5, tough-cookie@2.2.1, mime-types@2.1.10, aws4@1.3.2, bl@1.
    0.3, form-data@1.0.0-rc3, hawk@3.1.3, har-validator@2.0.6, http-signature@1.1.1)


    F:Program Files odejsmymodule>node-gyp

    Usage: node-gyp <command> [options]

    where <command> is one of:
    - build - Invokes `msbuild` and builds the module
    - clean - Removes any generated build files and the "out" dir
    - configure - Generates MSVC project files for the current module
    - rebuild - Runs "clean", "configure" and "build" all at once
    - install - Install node development files for the specified node version.
    - list - Prints a listing of the currently installed node development files
    - remove - Removes the node development files for the specified version

    node-gyp@3.3.1 C:UserscutepigAppDataRoaming pm ode_modules ode-gyp
    node@0.12.0

    F:Program Files odejsmymodule>node-gyp configure build

    再次执行,又莫名其妙失败。说是缺少python定义


    gyp info it worked if it ends with ok
    gyp info using node-gyp@3.3.1
    gyp info using node@0.12.0 | win32 | x64
    gyp ERR! configure error
    gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
    HON env variable.
    gyp ERR! stack at failNoPython (C:UserscutepigAppDataRoaming pm ode_mo
    dules ode-gyplibconfigure.js:401:14)
    gyp ERR! stack at C:UserscutepigAppDataRoaming pm ode_modules ode-gyp
    libconfigure.js:356:11
    gyp ERR! stack at FSReqWrap.oncomplete (fs.js:99:15)
    gyp ERR! System Windows_NT 6.1.7601
    gyp ERR! command "node" "C:\Users\cutepig\AppData\Roaming\npm\node_modules
    \node-gyp\bin\node-gyp.js" "configure" "build"
    gyp ERR! cwd F:Program Files odejsmymodule
    gyp ERR! node -v v0.12.0
    gyp ERR! node-gyp -v v3.3.1
    gyp ERR! not ok

    F:Program Files odejsm

    F:Program Files odejsmymodule>set PYTHON=F:swPython27python.exe

    F:Program Files odejsmymodule>node-gyp configure build

    设置好后,运行 ,这个错误没了 

    但是又多了个莫名其妙的错误 !


    gyp info it worked if it ends with ok
    gyp info using node-gyp@3.3.1
    gyp info using node@0.12.0 | win32 | x64
    gyp http GET https://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
    gyp http 200 https://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
    gyp http GET https://nodejs.org/dist/v0.12.0/SHASUMS256.txt
    gyp http GET https://nodejs.org/dist/v0.12.0/x64/node.lib
    gyp http GET https://nodejs.org/dist/v0.12.0/node.lib
    gyp http 200 https://nodejs.org/dist/v0.12.0/SHASUMS256.txt
    gyp http 200 https://nodejs.org/dist/v0.12.0/x64/node.lib
    gyp http 200 https://nodejs.org/dist/v0.12.0/node.lib
    gyp info spawn F:swPython27python.exe
    gyp info spawn args [ 'C:\Users\cutepig\AppData\Roaming\npm\node_modules\
    node-gyp\gyp\gyp_main.py',
    gyp info spawn args 'binding.gyp',
    gyp info spawn args '-f',
    gyp info spawn args 'msvs',
    gyp info spawn args '-G',
    gyp info spawn args 'msvs_version=auto',
    gyp info spawn args '-I',
    gyp info spawn args 'F:\Program Files\nodejs\mymodule\build\config.gypi',

    gyp info spawn args '-I',
    gyp info spawn args 'C:\Users\cutepig\AppData\Roaming\npm\node_modules\
    node-gyp\addon.gypi',
    gyp info spawn args '-I',
    gyp info spawn args 'C:\Users\cutepig\.node-gyp\0.12.0\common.gypi',
    gyp info spawn args '-Dlibrary=shared_library',
    gyp info spawn args '-Dvisibility=default',
    gyp info spawn args '-Dnode_root_dir=C:\Users\cutepig\.node-gyp\0.12.0',
    gyp info spawn args '-Dnode_gyp_dir=C:\Users\cutepig\AppData\Roaming\npm
    ode_modules\node-gyp',
    gyp info spawn args '-Dnode_lib_file=node.lib',
    gyp info spawn args '-Dmodule_root_dir=F:\Program Files\nodejs\mymodule',
    gyp info spawn args '--depth=.',
    gyp info spawn args '--no-parallel',
    gyp info spawn args '--generator-output',
    gyp info spawn args 'F:\Program Files\nodejs\mymodule\build',
    gyp info spawn args '-Goutput_dir=.' ]
    Traceback (most recent call last):
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgypgyp_main.
    py", line 16, in <module>
    sys.exit(gyp.script_main())
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgyppylibgyp
    \__init__.py", line 545, in script_main
    return main(sys.argv[1:])
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgyppylibgyp
    \__init__.py", line 538, in main
    return gyp_main(args)
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgyppylibgyp
    \__init__.py", line 514, in gyp_main
    options.duplicate_basename_check)
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgyppylibgyp
    \__init__.py", line 91, in Load
    generator = __import__(generator_name, globals(), locals(), generator_name)
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgyppylibgyp
    generatormsvs.py", line 20, in <module>
    import gyp.MSVSUserFile as MSVSUserFile
    File "C:UserscutepigAppDataRoaming pm ode_modules ode-gypgyppylibgyp
    MSVSUserFile.py", line 9, in <module>
    import socket # for gethostname
    File "F:swPython27libsocket.py", line 47, in <module>
    import _socket
    ImportError: DLL load failed: 找不到指定的程序。
    gyp ERR! configure error
    gyp ERR! stack Error: `gyp` failed with exit code: 1
    gyp ERR! stack at ChildProcess.onCpExit (C:UserscutepigAppDataRoaming p
    m ode_modules ode-gyplibconfigure.js:305:16)
    gyp ERR! stack at ChildProcess.emit (events.js:110:17)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:1067
    :12)
    gyp ERR! System Windows_NT 6.1.7601
    gyp ERR! command "node" "C:\Users\cutepig\AppData\Roaming\npm\node_modules
    \node-gyp\bin\node-gyp.js" "configure" "build"
    gyp ERR! cwd F:Program Files odejsmymodule
    gyp ERR! node -v v0.12.0
    gyp ERR! node-gyp -v v3.3.1
    gyp ERR! not ok

    F:Program Files odejsmymodule>

    后来俺换了一个python27,终于没有了socket的错误

    但是编译又出了一堆v8的错误!

    F:Program Files odejsmymodule>node-gyp configure build
    gyp info it worked if it ends with ok
    gyp info using node-gyp@3.3.1
    gyp info using node@0.12.0 | win32 | x64
    gyp info spawn F:Python27python.exe
    gyp info spawn args [ 'C:\Users\cutepig\AppData\Roaming\npm\node_modules\node-gyp\gyp\gyp_main.py',
    gyp info spawn args 'binding.gyp',
    gyp info spawn args '-f',
    gyp info spawn args 'msvs',
    gyp info spawn args '-G',
    gyp info spawn args 'msvs_version=auto',
    gyp info spawn args '-I',
    gyp info spawn args 'F:\Program Files\nodejs\mymodule\build\config.gypi',
    gyp info spawn args '-I',
    gyp info spawn args 'C:\Users\cutepig\AppData\Roaming\npm\node_modules\node-gyp\addon.gypi',
    gyp info spawn args '-I',
    gyp info spawn args 'C:\Users\cutepig\.node-gyp\0.12.0\common.gypi',
    gyp info spawn args '-Dlibrary=shared_library',
    gyp info spawn args '-Dvisibility=default',
    gyp info spawn args '-Dnode_root_dir=C:\Users\cutepig\.node-gyp\0.12.0',
    gyp info spawn args '-Dnode_gyp_dir=C:\Users\cutepig\AppData\Roaming\npm\node_modules\node-gyp',
    gyp info spawn args '-Dnode_lib_file=node.lib',
    gyp info spawn args '-Dmodule_root_dir=F:\Program Files\nodejs\mymodule',
    gyp info spawn args '--depth=.',
    gyp info spawn args '--no-parallel',
    gyp info spawn args '--generator-output',
    gyp info spawn args 'F:\Program Files\nodejs\mymodule\build',
    gyp info spawn args '-Goutput_dir=.' ]
    gyp info spawn C:Program Files (x86)MSBuild12.0inmsbuild.exe
    gyp info spawn args [ 'build/binding.sln',
    gyp info spawn args '/clp:Verbosity=minimal',
    gyp info spawn args '/nologo',
    gyp info spawn args '/p:Configuration=Release;Platform=x64' ]
    在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
    1.cpp
    ..1.cpp(6): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [F:Program Files odejsmymoduleuildhello.
    vcxproj]
    ..1.cpp(6): error C2143: syntax error : missing ',' before '&' [F:Program Files odejsmymoduleuildhello.vcxproj]
    ..1.cpp(7): error C2248: 'v8::HandleScope::HandleScope' : cannot access protected member declared in class 'v8::HandleScope' [F:Program Files odej
    smymoduleuildhello.vcxproj]
    C:Userscutepig.node-gyp.12.0depsv8includev8.h(816) : see declaration of 'v8::HandleScope::HandleScope'
    C:Userscutepig.node-gyp.12.0depsv8includev8.h(800) : see declaration of 'v8::HandleScope'
    ..1.cpp(8): error C2039: 'Close' : is not a member of 'v8::HandleScope' [F:Program Files odejsmymoduleuildhello.vcxproj]
    C:Userscutepig.node-gyp.12.0depsv8includev8.h(800) : see declaration of 'v8::HandleScope'
    ..1.cpp(8): error C2039: 'New' : is not a member of 'v8::String' [F:Program Files odejsmymoduleuildhello.vcxproj]
    C:Userscutepig.node-gyp.12.0depsv8includev8.h(1599) : see declaration of 'v8::String'
    ..1.cpp(8): error C3861: 'New': identifier not found [F:Program Files odejsmymoduleuildhello.vcxproj]
    ..1.cpp(12): error C2039: 'NewSymbol' : is not a member of 'v8::String' [F:Program Files odejsmymoduleuildhello.vcxproj]
    C:Userscutepig.node-gyp.12.0depsv8includev8.h(1599) : see declaration of 'v8::String'
    ..1.cpp(13): error C2664: 'v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(v8::Isolate *,v8::FunctionCallback,v8::Handle<v8::Value>,v8::Ha
    ndle<v8::Signature>,int)' : cannot convert argument 1 from 'v8::Handle<v8::Value> (__cdecl *)(const int)' to 'v8::Isolate *' [F:Program Files odejs
    mymoduleuildhello.vcxproj]
    There is no context in which this conversion is possible
    ..1.cpp(13): error C2227: left of '->GetFunction' must point to class/struct/union/generic type [F:Program Files odejsmymoduleuildhello.vcxpro
    j]
    ..1.cpp(12): error C3861: 'NewSymbol': identifier not found [F:Program Files odejsmymoduleuildhello.vcxproj]
    gyp ERR! build error
    gyp ERR! stack Error: `C:Program Files (x86)MSBuild12.0inmsbuild.exe` failed with exit code: 1
    gyp ERR! stack at ChildProcess.onExit (C:UserscutepigAppDataRoaming pm ode_modules ode-gyplibuild.js:276:23)
    gyp ERR! stack at ChildProcess.emit (events.js:110:17)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
    gyp ERR! System Windows_NT 6.1.7601
    gyp ERR! command "node" "C:\Users\cutepig\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" "configure" "build"
    gyp ERR! cwd F:Program Files odejsmymodule
    gyp ERR! node -v v0.12.0
    gyp ERR! node-gyp -v v3.3.1
    gyp ERR! not ok

  • 相关阅读:
    JSP Web第五章整理复习 JSP访问数据库
    JSP Web第四章整理复习 JSP技术基础
    JSP Web第三章整理复习 开发环境搭建
    在n个球中,任意取出m个(不放回),求共有多少种取法
    递归比较字符串是否相等
    数组求和的3种常见递归方法
    打印begin~end
    jQuery简单实现图片预加载
    HTML5语义化标签重构页面
    jQuery插件slick实现响应式移动端幻灯片图片切换特效—大全
  • 原文地址:https://www.cnblogs.com/cutepig/p/5249148.html
Copyright © 2020-2023  润新知