C++ 如何编译c++;使用waf在运行时生成的源文件?

C++ 如何编译c++;使用waf在运行时生成的源文件?,c++,waf,C++,Waf,我在源代码树中有protobuf proto文件。我想在每次更改和第一次运行时从proto文件生成源文件(例如,我创建了新的proto文件)。然后,我想从这些源文件编译共享库,并将它们保存在源代码树中 实现目标的最佳方式是什么?我自己找到了解决方案: from waflib import Build, Utils, TaskGen def build(bld): bld.post_mode = Build.POST_LAZY # some bld(...) tasks tha

我在源代码树中有protobuf proto文件。我想在每次更改和第一次运行时从proto文件生成源文件(例如,我创建了新的proto文件)。然后,我想从这些源文件编译共享库,并将它们保存在源代码树中


实现目标的最佳方式是什么?

我自己找到了解决方案:

from waflib import Build, Utils, TaskGen

def build(bld):
    bld.post_mode = Build.POST_LAZY

    # some bld(...) tasks that generate source files.

    bld.shlib(source='main.cc', dynamic_source='**/*.cc', target='test')

@TaskGen.feature('cxxshlib')
@TaskGen.before('process_source')
def dynamic_post(self):
    if not getattr(self, 'dynamic_source', None):
        return
    self.source = Utils.to_list(self.source)
    self.source.extend(self.path.get_bld().ant_glob(self.dynamic_source))

你用的是什么项目经理?@让我说:什么是“项目经理”?-我使用EclipseIDE和waf构建系统。哦,好吧,我不知道waf是一个构建系统。用cmake代替吗?虽然这是一个选择,但最后,你会有更多的人回答你。