2011-11-22 70 views
0

我正在编写一些使用MATLAB提供的C库(从* .mat文件中提取数据)的代码。在我的IDE(Code :: Blocks)中,我包含了包含必需的“mat.h”的文件夹,它位于网络驱动器上。我的代码识别mat.h中定义的类型,当我这样做时,但每当我从文件中调用函数,我得到一个“未定义的引用”错误。 MathWorks提供的示例代码的情况也是如此。什么样的问题通常会导致这种情况?包含Typedefs,但不包含函数

#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; 
} 

谢谢! Cameron

回答

0

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

+0

谢谢是的,这是一个链接器问题! – user1060598

2

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

不知道这是如何在Code :: Blocks中完成的。在Code:Blocks文档中,它被描述为here

+0

谢谢是的,这是一个链接器问题! – user1060598