C++ में लिंकर त्रुटि «undefined reference»: कारण और समाधान
नमस्ते! मैंने C++ सीखना शुरू किया है और एक त्रुटि का सामना किया जिसे मैं समझ नहीं पा रहा हूँ। मैं एक सरल प्रोग्राम लिख रहा हूँ जो दो संख्याओं को जोड़ता है, लेकिन compiler लिंकिंग चरण में एक अजीब त्रुटि देता है।
यहाँ मेरा कोड है। एक header file `math_utils.h` है:
```cpp
#ifndef MATH_UTILS_H
#define MATH_UTILS_H
int add(int a, int b);
#endif
```
फ़ाइल `math_utils.cpp`:
```cpp
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
```
और मुख्य फ़ाइल `main.cpp`:
```cpp
#include
#include "math_utils.h"
int main() {
std::cout << "Sum: " << add(5, 3) << std::endl;
return 0;
}
```
मैं इस तरह compile करता हूँ: `g++ main.cpp -o program`। जवाब में मुझे यह त्रुटि मिलती है:
```
/tmp/ccXxYyZz.o: In function `main':
main.cpp:(.text+0x1a): undefined reference to `add(int, int)'
collect2: error: ld returned 1 exit status
```
मैंने जाँचा — फ़ंक्शन `add` `math_utils.cpp` में परिभाषित है, header शामिल है। लिंकर इसे क्यों नहीं देख पा रहा है? «undefined reference» क्या है?