خطأ "undefined reference/unresolved external symbol" في C++: الأسباب والحل
مرحبًا بالجميع! أنا مبتدئ في لغة 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`. كل شيء يفشل مع هذا الخطأ. لقد تحققت من أن الملفات في نفس المجلد، وأن ملف الرأس متصل بشكل صحيح.