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`。结果都报这个错误。我检查了文件在同一文件夹,头文件包含正确,