Erro "undefined reference/unresolved external symbol" em C++: causas e correção
Olá a todos! Sou novo em C++ e estou há várias horas lutando contra um erro que não consigo entender. O compilador mostra algo como:
```
undefined reference to `MyClass::myFunction()'
```
ou
```
unresolved external symbol "public: void __thiscall MyClass::myFunction(void)" (?myFunction@MyClass@@QAEXXZ) referenced in function _main
```
Aqui está meu código. Tenho três arquivos:
**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;
}
```
Estou compilando no Visual Studio ou via g++ com um único comando: `g++ main.cpp -o program`. Tudo falha com esse erro. Verifiquei que os arquivos estão na mesma pasta, o arquivo de cabeçalho está incluído corretamente,