Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用混合C/C+构建NodeJS插件+;源文件_C++_C_Node.js_Add On - Fatal编程技术网

C++ 使用混合C/C+构建NodeJS插件+;源文件

C++ 使用混合C/C+构建NodeJS插件+;源文件,c++,c,node.js,add-on,C++,C,Node.js,Add On,我正在尝试从混合C/C++源代码构建一个NodeJS插件。我希望避免将C代码构建为单独的共享库,尽管这是部分解决方案 我得到一个错误: Cannot guess how to process src:///home/chris/Dropbox/cbackend/data.c (got mappings ['.C', '.cc', '.cpp', '.c++', '.cxx'] in <class 'cxx.cxx_taskgen'>) -> try conf.check_t

我正在尝试从混合C/C++源代码构建一个NodeJS插件。我希望避免将C代码构建为单独的共享库,尽管这是部分解决方案

我得到一个错误:

Cannot guess how to process src:///home/chris/Dropbox/cbackend/data.c 
(got mappings ['.C', '.cc', '.cpp', '.c++', '.cxx'] 
in <class 'cxx.cxx_taskgen'>) -> try conf.check_tool(..)?

我从邮件列表中得到了解决方案


普通C编译器在NodeJS中称为“compiler_cc”,而不是WAF文档中的“compiler_C”。

我在邮件列表中得到了解决方案

普通C编译器在NodeJS中称为“compiler_cc”,而不是WAF文档中的“compiler_C”

import os
import Options

srcdir = '.'
blddir = 'build'
VERSION = '0.3.0'

def set_options(opt):
  opt.tool_options('compiler_cxx')

def configure(conf):
  conf.check_tool('compiler_cxx')
  conf.check_tool('node_addon')

  conf.env.append_value('CCFLAGS', ['-O3'])
  conf.env.append_value('CXXFLAGS', ['-O3'])
  if Options.platform == 'darwin': conf.env.append_value('LINKFLAGS', ['-undefined', 'dynamic_lookup'])

def build(bld):
  obj = bld.new_task_gen('cxx', 'shlib', 'node_addon')
  obj.target = 'cbackend'
  obj.source = 'cbackend.cc data.c'
  obj.uselib = ['NODE']