因此,我嘗試在 Visual Studio 2022 中運行最簡單的 C 程式:
主.cpp:
#include "TestClass.h"
int main() {
TestClass().testMethod();
}
測驗類.h:
#pragma once
class TestClass {
public:
void testMethod();
};
測驗類.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 上有很多問題在討論該特定錯誤,但我找不到任何適用于我的情況的問題,除了這個沒有答案的問題。
所有檔案都包含在專案中(一切都是在 Visual Studio 中生成的),我沒有收到 IntelliSense 的任何警告,并且每個檔案都可以自己編譯(使用 Ctrl F7)
我不知道發生了什么,并希望得到任何幫助。
uj5u.com熱心網友回復:
在 C inline中,函式的主體必須存在于呼叫它們的每個翻譯單元中。
洗掉行內不會改變任何東西
嘗試測驗它。我不是唯一一個證明inline會導致 lnk 錯誤的人。正如 Sedenion 所說,這是一個使用錯誤。
我建議向開發者社區報告此錯誤行為并將鏈接發布在此執行緒中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/460619.html
上一篇:打開.cs檔案時的VisualStudio2022未經授權的操作
下一篇:如何向所有用戶推送通知,例如
