2010-11-26 89 views
1

我正在使用C++产品。它的设计具有相当大的灵活性,并且越来越大。现在我们计划在一个项目中进行合作,我们希望贡献一部分产品:一部分作为源代码,一部分作为静态链接库,一部分根本不作为。C++中的“Static plugin”系统(通过编译系统)

我想保留在这两个项目中使用的每个源文件的一个版本,并避免分支整个事情等等。所以我想知道我需要什么能够在内部具有所有文件的“完整产品”并且还能够提取这些文件的一部分(每隔一段时间)并将该子集作为工作单元传递给其他人。 (我认为我们可以确保这些文件未在合作项目的改变,我们只会增加的东西在那里。)

我想我需要

  • 松散耦合,使部分可以软件架构在不破坏系统的情况下移除。我认为术语“静态”插件在这里是合适的,因为我认为我可以从插件系统学习,但我不需要有动态加载它们的能力,它们可以静态方式链接/构建。我希望这可能会迫使我和我的同事通过添加某种插件来扩展系统,而不是在这里和那里插入类,从而引入事物之间的耦合。
  • 一个构建系统,支持我通过选择要构建的插件并通过仅提取我需要的“释放”新子集来支持我。

是否有任何互联网资源可能有所帮助。什么是要搜索的关键字?

对于如何处理这个问题你有什么建议吗?

回答

4

Dr Dobbs有一个有趣的文章系列,你可能想看看。我似乎记得除了通常的动态链接外,它还支持插件的静态链接。检查出Building Your Own Plugin Framework

祝你好运!

0

首先,你需要像混帐:

http://github.com

管理源。要管理“插件”,无论是否为静态,它可能会付出代价来查看现有系统已经这样做:我可以推荐检查Python如何执行它(因为有一个精心指定的C API来管理它)。

我知道的最好的构建系统是.. Python。忘记使:)一个预先构建的是埃里克Tryzelaars fbuild(可从github)。[嗯,我认为这是最好的,因为我使用它:]