我想从C++库生成C包装器。
有关于如何手动执行的教程:
但这是体力劳动。
例如,为此:
struct RtAudio {
virtual DeviceInfo const& f() {...}
class DeviceInfo {
virtual void g() { ... }
};
...
};
我需要写:
struct RtAudioC {
RtAudio x;
};
struct DeviceInfo {
RtAudio::DeviceInfo x;
};
extern "C" {
RtAudioC* newRtAudio() {
return new RtAudioC;
}
void deleteRtAudio(RtAudioC *p {
delete p;
}
/* do something with RtAudio::f() */
void g(DeviceInfo *p) {
try {
p->x.g();
} catch (SomeError & err) {
}
}
}
是否有可以自动执行此过程的工具?
最佳答案
您可以尝试SWIG,C代码生成器是去年的GSoC项目。 AFAIK他们尚未将其合并到主干,因此您必须从SVN checkout 并构建分支。
关于c++ - 从C++生成C包装器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1067278/