Avatar ·

C++中的“undefined reference/unresolved external symbol”错误:原因与修复

大家好!我是C++新手,已经花了几个小时纠结于一个我无法理解的错误。编译器输出类似: ``` undefined reference to `MyClass::myFunction()' ``` 或 ``` unresolved external symbol "public: void __thiscall MyClass::myFunction(void)" (?myFunction@MyClass@@QAEXXZ) referenced in function _main ``` 这是我的代码。我有三个文件: **main.cpp:** ```cpp #include "myclass.h" int main() { MyClass obj; obj.myFunction(); return 0; } ``` **myclass.h:** ```cpp #ifndef MYCLASS_H #define MYCLASS_H class MyClass { public: void myFunction(); }; #endif ``` **myclass.cpp:** ```cpp #include "myclass.h" #include void MyClass::myFunction() { std::cout << "Hello from myFunction!" << std::endl; } ``` 我在Visual Studio中或通过g++用一条命令编译:`g++ main.cpp -o program`。结果都报这个错误。我检查了文件在同一文件夹,头文件包含正确,