binding.gyp 配置opencv

biding.gyp介绍

  1. 定义全局变量
    ‘arch%’: ‘<!(node config.js <(target_arch))’‘arch%’: ‘<!(node config.js <(target_arch))’
    config.js根据不同的cput架构映射不同的目录结构
    config.js
if (process.argv.length == 3) {
    var arch = process.argv[2];
    if (arch === "ia32") {
        console.log("x86");
    } else if (arch === "x64") {
        console.log("x64");
    } else {
        console.log("unkown");
    }
}
  1. 定义Copy任务
    “dependencies” : [ “compare_image” ]
    项目构建之后执行Copy任务

编译手顺

  1. 配置node-gyp环境
npm install -g node-gyp
npm install --global --production windows-build-tools
  1. 进入到add on 目录
cd addon/src/compare-image
  1. 安装 opencv2 vc12环境,修改binding.gyp的第三行,把路径修改成你的opencv目录
    'OPENCV_DIR%': 'D:/work-software/opencv',
  1. 编译64位
node-gyp clean configure build --verbose --arch=x64
  1. 编译32位
node-gyp clean configure build --verbose --arch=ia32
  1. 确认输出output
|addon
|__bin
|   |__x64
|   |   |__compare_image.node
|   |   |__opencv_core2410.dll
|   |   |__opencv_highgui2410.dll
|   |   |__opencv_imgproc2410.dll
|   |__x86
|   |   |__compare_image.node
|   |   |__opencv_core2410.dll
|   |   |__opencv_highgui2410.dll
|   |   |__opencv_imgproc2410.dll

binding.gyp

{
  'variables': {
    'opencv_dir%': 'd:/work-software/opencv',
    'arch%': '<!(node config.js <(target_arch))'
  },
  "targets": [
    {
      'target_name': "compare_image",
      'sources': [ "main.cc" ,"compareimage.cc"],
      'conditions': [
          # node-gyp clean configure build --verbose
          ['os=="win"' and 'target_arch=="x64"', {
            'defines': [
              'windows_dbr',
            ],
            'include_dirs': [
                "<(opencv_dir)/build/include/opencv2",
                "<(opencv_dir)/build/include",
                "<(opencv_dir)/build/include/opencv"
            ],
            'libraries': [
                "-l<(opencv_dir)/build/x64/vc12/lib/opencv_core2410.lib",
                "-l<(opencv_dir)/build/x64/vc12/lib/opencv_highgui2410.lib",
                "-l<(opencv_dir)/build/x64/vc12/lib/opencv_imgproc2410.lib"
              ]
            }],
          # node-gyp clean configure build --verbose --arch=ia32
          ['os=="win"' and 'target_arch=="ia32"',{
            'defines': [
              'windows_dbr',
            ],
            'include_dirs': [
                "<(opencv_dir)/build/include/opencv2",
                "<(opencv_dir)/build/include",
                "<(opencv_dir)/build/include/opencv"
            ],
            'libraries': [
                "-l<(opencv_dir)/build/x86/vc12/lib/opencv_core2410.lib",
                "-l<(opencv_dir)/build/x86/vc12/lib/opencv_highgui2410.lib",
                "-l<(opencv_dir)/build/x86/vc12/lib/opencv_imgproc2410.lib"
            ]

        }]
      ]
    },
    {
      "target_name": "copy_binary",
      "type":"none",
      "dependencies" : [ "compare_image" ],
      "copies":
      [
        {
            'destination': '<(module_root_dir)/../../bin/<(arch)/',
            'files': ['<(module_root_dir)/build/release/compare_image.node']
        },
        {
            'destination': '<(module_root_dir)/../../bin/<(arch)/',
            'files': ['<(opencv_dir)/build/<(arch)/vc12/bin/opencv_core2410.dll',
              '<(opencv_dir)/build/<(arch)/vc12/bin/opencv_highgui2410.dll',
              '<(opencv_dir)/build/<(arch)/vc12/bin/opencv_imgproc2410.dll'
              ]
        }
      ]
    }
  ]
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值