Visual Studio Code 中的 #include < mat.h> 不起作用

#include <mat.h> in Visual Studio Code does not work

本文关键字:mat gt 不起作用 Studio lt 中的 #include Visual Code      更新时间:2023-10-16

我想在 c++ 中使用一些 matlab 代码。例如,我想直接在我的 c++ IDE 中读取 matlab 文件。有一些非常酷的 c++ 包可以让你处理我面临的大多数问题。

但我没有使用这些软件包。似乎我无法正确 #include 软件包。该错误看起来总是类似于"未定义对'matOpen'的引用"。

我在Windows上使用Visual Studio Code和mingw作为c ++编译器。

  1. 我尝试了不同的符号:
#include < mat.h>
#include "mat.h"

而且,因为我使用 c++,#include < cmath>它不起作用,但给出了不同的错误:

"'matOpen'没有在这个范围内声明"。

  1. 我尝试用cmd编译

我还尝试在命令提示符下编译文件。我在这里读到可能存在链接问题,并试图"将 -lm 标志添加到 gcc 编译器命令以在您的 C 代码中使用数学函数">但没有成功。

我不是 c++ 或 cmd 的专家,我可能会在使用正确的编译命令时犯一些错误。上面的帮助使用 ubuntu 和 c,而不是 windows 和 c++。为了成功编译,我必须注意任何差异吗?

  1. 不同的路径

我还尝试将文件 mat.h 重新定位到不同的位置,例如项目的路径或编译器路径,或者在 include 语句中将 mat.h 的完整路径写入。

一个类似的(C++文件中的链接mat.h(问题是针对ubuntu的,也没有帮助我。

我的代码非常简单:

#include <iostream>
#include <mat.h>
#include <stdio.h>
using namespace std;
int main()
{
MATFile *pmat;
pmat = matOpen("test.mat","r");
return 0;
}

我收到的错误消息:

cd "c:projectstest" ; if ($?) { g++ test.cpp -o test } ; if ($?) { .test }
C:user_pathAppDataLocalTempccKUxfwi.o:test.cpp:(.text+0x1c): undefined reference to `matOpen'
collect2.exe: error: ld returned 1 exit status

我将不胜感激任何帮助。我想使用更多的软件包,但它可能是所有人的相同解决方案。

#include是正确的,因为它避免了"未声明"错误。

"未定义的引用"是一个链接时错误,它与 #include 语句无关(消息是由ld发出的,而不是gcc(。

检查是否已在项目中添加了(预编译的(库。