在 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 库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 wsl2 上从 python3 运行 Selenium ChromeDriver?