What is an Undefined Reference Error in C++?
In C++, an undefined reference is an error that occurs when the linker can’t find the definition of a function or a variable used in the linking stage of the compilation process. This error needs to be resolved for the smooth working of the program.
When Does Undefined Reference Error Occur in C++?
An undefined reference error is a linker error, not a compiler error. It appears when the code refers to a symbol (function or variable) whose declaration is known, but whose definition is missing. We get undefined reference errors due to the following reasons:
- Function or Variable Declaration Without Definition.
- Incorrect Scope Resolution.
- Incorrect Linking of Object Files or Libraries.
Example of Undefined Reference Error
The below example demonstrates the occurrence of an undefined reference error due to a missing function definition.
C++
// C++ example demonstrating an undefined reference error. #include <iostream> // Declare `newFunction` but don't provide its // implementation. void newFunction(); int main() { // Calling this triggers an error because `newFunction` // is undefined. newFunction(); return 0; } |
Output
/usr/bin/ld: /tmp/cceTEmEf.o: in function `main': main.cpp:(.text+0x9): undefined reference to `newFunction()' collect2: error: ld returned 1 exit status
To resolve this, make sure to provide a proper definition for the function:
C++
// C++ program demonstrating a corrected undefined reference // error #include <iostream> using namespace std; // Function that prints "This is new function" void newFunction() { cout << "This is new function" ; } int main() { newFunction(); return 0; } |
This is new function
How to Avoid Undefined Reference Error in C++
To avoid undefined errors in our C++ program, we can follow the given steps:
- Double-check function definitions for consistency with declarations.
- Verify that all necessary header files are included.
- Inspect library linking instructions and ensure proper library paths.
- Scrutinize code for typos and misspellings in object names.
- Use a debugger to pinpoint the exact source file and line where the error originates.
To know more about how to fix these kinds of errors, refer to this article – How to fix undefined error in C++?
Contact Us