gcc # include< mat.h>在Visual Studio程式码中无法运作

vawmfj5a  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(224)

我想在C中使用一些matlab代码。例如,我想在我的C IDE中直接读取matlab文件。有一些非常酷的C包可以让你处理我面临的大多数问题。
但是我没有使用这些包。看起来我不能正确地#include这些包。错误看起来总是像“undefined reference to 'matOpen'”。
我使用Visual Studio代码和mingw作为Windows上的C
编译器。
1.我尝试了不同的符号:

#include < mat.h>

#include "mat.h"

而且,因为我使用的是c++,#include < cmath>不起作用,但会给出不同的错误:
未在此范围中声明“matOpen”。
1.我尝试在cmd中编译
我也试着在命令提示符下编译文件。我读到here可能有链接问题,并试图 “将-lm标志添加到gcc编译器命令中,以便在您的C代码中使用数学函数”,但没有成功。
我不是cMaven,也不是cmdMaven,可能我在正确的编译命令上犯了一些错误。上面的help使用ubuntu和c,而不是windows和c。为了成功编译,有什么不同之处我必须注意吗?
1.不同的路径
我还尝试将文件mat. h重定位到不同的位置,如项目路径或编译器路径,或者在include语句中写入mat. h的完整路径。
一个类似的(Link mat.h in a C++ file)问题是针对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:\projects\test\" ; if ($?) { g++ test.cpp -o test } ; if ($?) { .\test }
C:\user_path\AppData\Local\Temp\ccKUxfwi.o:test.cpp:(.text+0x1c): undefined reference to `matOpen'
collect2.exe: error: ld returned 1 exit status

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

n53p2ov0

n53p2ov01#

include<mat.h>是正确的,因为它避免了“未声明”错误。

“undefined reference”是一个链接时错误,它与#include语句无关(该消息由ld发出,而不是gcc)。
检查您是否已在项目中加入(先行编译)程式库。

相关问题