我正在尝试从main.cpp调用Raw类中的另一个函数foo(),但我不断收到此错误,而且我不明白我的代码有什么问题。我正在使用C++,并且正在使用QT框架。我是这种语言和框架的新手。

错误:
LNK2019:在function_main中引用的未解析的外部符号“public:void __thiscall RAW::foo(void)”(?foo @ Raw @@ QAEXXZ)。找不到文件:main.obj

main.cpp

#include "raw.h"

using namespace std;


int main(int, char*)
{
    Raw newRaw;
    newRaw.foo();

    return 0;
}

raw.cpp
#include "raw.h"
#include <iostream>

using namespace std;

void foo()
{
    cout << "hi\n";
}

Raw::Raw()
{
    cout << "raw\n";
}

原始文件
#ifndef RAW_H
#define RAW_H

class Raw
{
public:
    Raw();
    void foo();
};

#endif // RAW_H

最佳答案

在raw.cpp中,您必须像这样定义foo:

void Raw::foo()
{
    cout << "hi\n";
}

您必须放入Raw::,以便编译器知道这是类成员函数foo,而不是其他一些独立函数。

关于c++ - 无法调用另一个类-ERR-未解析的外部符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9317663/

10-12 23:35