C 包括typedef,但不包括函数

C 包括typedef,但不包括函数,c,function,matlab,include,codeblocks,C,Function,Matlab,Include,Codeblocks,我正在编写一些代码,使用MATLAB提供的C库(从*.mat文件中提取数据)。在我的IDE(Code::Blocks)中,我包含了包含必要的“mat.h”的文件夹,它位于网络驱动器上。当我这样做时,我的代码识别mat.h中定义的类型,但每当我从文件中调用函数时,就会出现“undefined reference”错误。MathWorks提供的示例代码也是如此。什么样的问题通常会导致这种情况 #include "mat.h" int main (void) { MATFile *pmat; /

我正在编写一些代码,使用MATLAB提供的C库(从*.mat文件中提取数据)。在我的IDE(Code::Blocks)中,我包含了包含必要的“mat.h”的文件夹,它位于网络驱动器上。当我这样做时,我的代码识别mat.h中定义的类型,但每当我从文件中调用函数时,就会出现“undefined reference”错误。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;
}
谢谢!
Cameron

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

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


但不知道这是如何在代码::块中完成的。代码:Blocks文档中对此进行了描述。

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