【问题标题】:How do I call a c function from inside a mex file in Matlab?如何从 Matlab 的 mex 文件中调用 c 函数?
【发布时间】:2014-06-06 17:28:44
【问题描述】:

我在 .c 文件中定义了一个 mexFunction,以常规 mex 包装格式编写。我希望能够从第一个函数内部调用另一个用 C 编写的函数。我怎样才能做到这一点?我是否需要创建一个常规的 .c 文件并将其包含在第一个文件的开头?我希望能够将 mex 函数中的变量传递给这个辅助 C 函数。

【问题讨论】:

  • MEX使用的.c文件是普通的C源码,函数调用正常。您是在问如何使mex 编译器将多个.c 文件链接在一起? #include 应该是一个适当的解决方法。
  • 我明白了。作为替代方案,在一个 .c 文件中定义多个函数是否有意义,其中一个是可以调用该文件中其他函数的网关函数?这是标准的做法吗?
  • 当然。它是 C 代码,您可以定义函数并在 C 代码中做所有合法的事情。
  • 您也可以通过这种方式链接目标文件。另请参阅this post

标签: matlab mex


【解决方案1】:

documentation for mex 有两个小节,描述当源代码分布在多个源文件中时如何构建 MATLAB 扩展。大多数情况下,您需要做的就是:

mex mexname.c helper1.c helper2.o

结果根据传入的第一个文件自动命名。

有关详细信息,请阅读 the documentation 部分“从多个源文件构建 MEX 文件”和“创建并链接到单独的目标文件”。也有部分讨论使用库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多