我正在编写一些使用MATLAB提供的C库的代码(从* .mat文件中提取数据)。在我的IDE(Code :: Blocks)中,我已经包含了包含必要的“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;
}
谢谢! 卡梅伦
答案 0 :(得分:2)
“undefined reference”通常是链接器错误。这不是头文件的问题。您需要告诉链接器将MATLAB的库(或专用对象)链接到您的程序。
不知道在Code :: Blocks中如何做到这一点。在Code:Blocks文档中,它被描述为here。
答案 1 :(得分:0)
你检查过mat.h的内容吗?它是否声明matOpen()
?此外,编译或链接时是否发生错误?如果是在链接阶段,您可能需要引用包含matOpen()
(Windows中的.lib或Unix中的.a)实现的库。 .h文件只声明函数。