在 Linux/OSX 上从 C 程序运行 matlab 编译的 dll 库

Posted

技术标签:

【中文标题】在 Linux/OSX 上从 C 程序运行 matlab 编译的 dll 库【英文标题】:Run matlab compiled dll library from a C program on Linux/OSX 【发布时间】:2015-10-01 09:13:23 【问题描述】:

所以我有一个在 Windows 上通过 Matlab 构建的 .dll 文件,我想在我创建的 C/C++ 程序上运行它。这可能吗?

我知道我可以像这样在 Windows 上运行它:

#include <windows.h>
...
HINSTANCE hinstLib;
hinstLib = LoadLibrary(TEXT("MyPuts.dll"));
...

但是windows.h在Linux/OSX上不可用,有没有其他办法?

或者,我可以用其他格式构建 Matlab 库吗?也许.so 是一个选项?

【问题讨论】:

.so 文件是 THE 解决方案。 DLL不能在Linux环境下使用。 我认为这不可能。如果你想在 Linux/OSX 上下文中使用它,你必须将你的代码编译成一个共享对象 MyPuts.so 或类似的,以便从 C 或 C++ 程序运行它。 【参考方案1】:

我确实认为这会是个问题。正如 Wauzl 评论所建议的那样,如果可能的话,您应该将其编译为 .so 。另一种选择是在 wine 下运行为 windows 编译的整个程序。

我自己还没有检查过 winelib,但也许值得一看 Winelib guide

Winelib 是一个开发工具包,可让您在 Unix 上编译 Windows 应用程序。

【讨论】:

以上是关于在 Linux/OSX 上从 C 程序运行 matlab 编译的 dll 库的主要内容,如果未能解决你的问题,请参考以下文章

给力的linux命令--jq简易教程

如何在 wsl2 上从 python3 运行 Selenium ChromeDriver?

无法在 iPhone 上从 Xcode 运行应用程序

我无法在物理设备上从 Xcode 安装和运行应用程序

如何在 Windows 上从 C 中的另一个程序启动一个独立程序(在单独的控制台窗口中)?

如何在 Apple Watch 上从 xcode 运行我的应用程序?