【问题标题】:Typedefs included, but not functions包括类型定义,但不包括函数
【发布时间】:2012-01-04 05:37:57
【问题描述】:

我正在编写一些使用 MATLAB 提供的 C 库的代码(从 *.mat 文件中提取数据)。在我的 IDE(代码::块)中,我已经包含了包含必要“mat.h”的文件夹,该文件夹位于网络驱动器上。当我这样做时,我的代码会识别 mat.h 中定义的类型,但是每当我从文件中调用函数时,我都会收到“未定义的引用”错误。这与 MathWorks 提供的示例代码相同。这通常是什么问题造成的?

#include "mat.h"
int main (void) {
   MATFile *pmat; // Compiles only when compiler is told to search in mat.h directory
   pmat = matOpen("example_filename", "r"); // Never compiles
   return 0;
}

谢谢! 卡梅伦

【问题讨论】:

    标签: c function matlab include codeblocks


    【解决方案1】:

    “未定义的引用”通常是链接器错误。不是头文件的问题。您需要告诉链接器将 MATLAB 的库(或专用对象)链接到您的程序。

    不知道如何在 Code::Blocks 中做到这一点。在 Code:Blocks 文档中描述为here

    【讨论】:

    • 谢谢,是的,这是一个链接器问题!
    【解决方案2】:

    您检查过 mat.h 的内容吗?它是否声明matOpen()?另外,编译或链接时是否发生错误?如果是在链接阶段,您可能需要引用包含matOpen() 实现的库(Windows 中的 .lib 或 Unix 中的 .a)。 .h 文件只声明函数。

    【讨论】:

    • 谢谢,是的,这是一个链接器问题!
    猜你喜欢
    • 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
    相关资源
    最近更新 更多