用混合的C / C ++源文件构build一个NodeJS插件

我试图从混合的C / C ++源代码构build一个NodeJS插件。 我想避免将C代码构build为独立的共享库,尽pipe这是一个部分的解决scheme。

我得到的错误:

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(..)? 

当我试图build立它。 如果我将.c文件重命名为.cc,并适当地更改wscript,则一切正常。

我已经尝试添加一个'compiler_c'的wscript,但它似乎并不可用。

这里是wscript:

 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'] 

我在邮件列表上获得了解决scheme。

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