我维护了一组在基因组学/生物信息学领域中使用的C ++工具(bedtools)。有几个用户要求我为库创建API,以便Perl和Python可以使用“钩子”(许多Python请求)。因此,我对使用SWIG很感兴趣,因为它支持C ++,理论上可以用来创建多种语言的API。
但是,编写上述工具是为了在UNIX流中将它们“管道”在一起,因此,所有库都写入stdout。我正在努力弄清楚如何使用SWIG将现有方法(printfs和couts)的输出作为API提供。我理想的愿景是工具的输出将是一个可以在Python中循环的迭代器/
有没有人有这方面的经验?我非常感谢示例代码的具体示例。希望我遗漏了一些非常明显的东西。
感激, 亚伦
答案 0 :(得分:0)
@jobu - SWIG的目的是包装C ++代码API,以便可以通过其他语言,python,perl等访问它们,因此基于管道的访问不合适。这绝不会阻止您根据需要管道输出或输入,您的用户只需要用他们自己的语言调用适当的打印功能。
但同样,重点是提供基于功能的访问。