gpt4 book ai didi

matlab - 将 MATLAB 链接到 DLL 库

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:39 26 4
gpt4 key购买 nike

我正在尝试从 MATLAB 工具包中执行一些示例代码,'oscmex '.该工具包允许通过 MATLAB 使用 OSC 协议(protocol)进行通信。我认为这个问题是非特定的;它应该适用于以这种方式设置的任何工具包。

撇开原因不谈,我在启动和运行工具包时遇到了一些简单的问题。该工具包没有任何文档;只是一组六个 DLL 文件(在一个目录中)和一组四个 MATLAB '.m' 示例代码文件(在另一个目录中)。我过去使用的每个工具包要么是内置工具包,要么具有直观(半自动)安装过程。

下载工具包后,我尝试的第一件事就是简单地运行其中一个“.M”示例代码。这失败了,因为代码的第一行包含函数 osc(),MATLAB(目前)无法识别该函数。

所以,我想也许我需要将“.M”文件移动到与 DLL 相同的文件夹中;也许 MATLAB 会看到 DLL 中的函数。没有骰子。

因此,我意识到我必须在启动时以某种方式将 MATLAB 链接到 DLL。我尝试将 DLL 添加到一个文件夹,并在“pathdef.m”文件中添加一个条目。这也失败了。

我在某处读到我可以使用 loadlibrary() 函数加载 DLL 文件。所以,我尝试对 DLL 文件执行此操作。这在第一个文件上失败了:

>> loadlibrary('osc_free_address.dll')

Error using loadlibrary>lFullPath (line 587)
Could not find file osc_free_address.h.

我的选项开始用完了...我怎样才能启动并运行这组 DLL?

最佳答案

正在浏览这个图书馆的 web page这些 DLL 似乎只是 mex旧形式文件。
因此,它们应该在共享库的上下文中使用(例如,使用loadlibrarycalllib),而是直接编译为 mex 文件.

为此,我建议采取以下步骤:

  1. 确保您已为您的 Matlab 配置了一个有效的 mex 编译器。
    在 matlab 中,输入:

    >> mex -setup

    这将指导您完成配置过程。我知道您在 Windows 机器上工作,我通常使用 visual studio 编译器 - 最适合我。

  2. 这个库的 README 文件建议 OSC

    requires liblo 0.22 or later. See http://plugin.org.uk/liblo/

    确保您拥有此库并且它位于您的 LD_LIBRARY_PATH 中(有关详细信息,请参见例如 this questionmex docs)。

  3. their repository 获取 OSC 库的代码.

  4. 使用matlab编译源代码

    >> mex -O -largeArrayDims osc_free_address.c
    >> mex -O -largeArrayDims osc_free_server.c

    所有 7 个 c 源文件依此类推。在对 c 文件进行 mex 处理后,您将拥有可以从 Matlab 运行的 mex 文件,就好像它们是常规函数一样。
    您可能会发现使用 library's make file 很有用,正如 Andrew Mao 所建议的。

祝你好运

关于matlab - 将 MATLAB 链接到 DLL 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789656/

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