如何在给定头文件的情况下生成空定义

时间:2008-10-22 11:01:25

标签: c++

我有一个第三方图书馆,出于各种原因我还不想链接。我不想删除我的代码但删除对其API的所有引用,所以我想生成它的虚拟实现。

我可以使用哪种工具在给定头文件的情况下吐出类的空定义?返回null,false,默认为0。我不想在飞行中做任何事情或任何聪明的事情 - 我看过的模拟对象库显得非常重量级?理想情况下,我希望使用像

这样的东西
$ generate-definition my_header.h > dummy_implemtation.cpp

我正在使用Linux,GCC4.1

2 个答案:

答案 0 :(得分:1)

这是一个比你想象的更难的问题,因为解析C ++很快就会成为一项艰巨的任务。你最好的选择是选择一个界面很好的现有解析器。

快速搜索this thread,其中有许多解析器可以做类似的建议。

在最糟糕的情况下,您可以使用SWIG - > Python,然后使用反射来打印虚拟实现。

对不起,这只是一个半答案,但我不认为有一个现有的工具可以做到这一点(除了模拟框架,这可能与使用解析器的工作量相同)。

答案 1 :(得分:0)

创建一个测试应用程序,该应用程序读取头文件并创建源文件。测试应用程序应解析头文件以了解函数名称。