gpt4 book ai didi

c++ - 使用 SWIG 对 C++ 库进行 Matlab 绑定(bind)

转载 作者:IT老高 更新时间:2023-10-28 23:15:35 25 4
gpt4 key购买 nike

我已经在使用 SWIG 将一些 C++ 库移植到 Python 中,结果的质量给我留下了深刻的印象。所以我想坚持使用 SWIG..

最近有人问我要一个 Matlab 端口。这样的想法实际上已经在我的 todolist 中了。但每次我在 google对 Matlab 及其调用 C/C++ 代码的几种方法的低技能)。

据我了解,在主分支中存在一种未维护且几乎没有文档记录的方法,并且在此方向上的许多其他尝试都没有达到足够成熟以成为主分支的一部分:link .我想跨平台,因此我认为 COM 方式可能不是我的解决方案。

不过,这一次我发现有一个分支看起来相当有前途:link有人已经测试过这个解决方案了吗?万一,一个从 Matlab 调用移植的 C++ 代码的简单工作示例会非常有帮助..

编辑 1:我删除了对 C++11 的任何引用

编辑 2:matlab 分支(在答案中引用)目前正在评估中,将与 swig 主分支合并(参见:https://github.com/jaeandersson/swig/issues/72https://sourceforge.net/p/swig/mailman/message/35209729/ )

最佳答案

由于我目前参与了为 SWIG 实现 MATLAB 模块的工作(我在您链接的邮件中写过),因此我可以提供一些背景信息并报告 2014 年 11 月的状态。

使用各种不同的方法为 SWIG 实现 MATLAB 模块已经进行了多次努力。截至今天(2014 年 11 月),它们都还没有成功地融入 SWIG 的主分支(我们希望在不久的将来改变这一点,见下文)。

和您一样,我正在使用 SWIG 将 C++ 项目(称为 CasADi)移植到 Python,并且几年来一直在关注 SWIG 中 MATLAB 支持的发展,因为这对我们的项目非常有用。在我有点参与的努力未能通过概念验证阶段之后,我决定自己试一试。今年 4 月(2014 年),我开始编码,它比我预期的要顺利得多。经过大约 2 周的编码,我已经实现了核心功能(包装函数、类等),并将其发布到 SWIG 社区。我很高兴看到 SWIG 列表中的许多积极响应,更高兴看到像 Kris(见他的回答)这样的人加入了这项工作并做出了巨大贡献。

模块目前的状态是它已经实现了大部分功能,并已成功用于 CasADi 和其他项目。对我来说,它清楚地表明选择的方法是正确的,即使在模块稳定和记录之前还有一些工作要做。我希望能够再次插入并真正设法将 SWIG 模块带到可以合并到 SWIG 主分支中的状态。但这取决于我是否/何时设法获得资金来开展这项工作。不过,我相信它很快就会发生。

最后,您的问题提到了 C++11。这确实是一个与 MATLAB 模块工作完全不同的问题。涉及 C++11 的内容主要在 SWIG 中处理,这与您输出到哪种语言无关。所以一般请查阅 SWIG 中的 C++11 支持。

关于c++ - 使用 SWIG 对 C++ 库进行 Matlab 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26664945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com