VS 2022:调用在 class 定义之外定义的方法时出现 "Unresolved external" 错误

VS 2022: "Unresolved external" error when calling methods that are defined outside of the class definition

所以,我已经尝试 运行 在 Visual Studio 2022 年可以想象到的最简单的 C++ 程序:

main.cpp:

#include "TestClass.h"

int main() {
    TestClass().testMethod();
}

TestClass.h:

#pragma once
class TestClass {
public:
    void testMethod();
};

TestClass.cpp:

#include "TestClass.h"

inline void TestClass::testMethod() {

}

但出于某种原因,除了链接器错误,我什么也没得到:

error LNK2019: unresolved external symbol "public: void __cdecl TestClass::testMethod(void)" (?testMethod@TestClass@@QEAAXXZ) referenced in function main

我知道 Stack Overflow 上有很多问题都在讨论这个特定的错误,但我找不到任何适用于我的情况的问题,除了 this one,它没有回答。

所有文件都包含在项目中(所有内容都在 Visual Studio 中生成),我没有从 IntelliSense 收到任何警告,每个文件都可以自己编译(使用 Ctrl+F7)

我不知道发生了什么,希望得到任何帮助。

在 C++ 中 inline 函数必须在调用它们的每个翻译单元中都存在它们的主体。

Removing inline doesn't change anything

尝试测试一下。我不是唯一证明 inline 导致 lnk 错误的人。作为 Sedenion 说,这是一个使用错误。

我建议向 Developer Community 报告此错误行为并在此线程中发布 link。