Horje
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:

  1. Function or Variable Declaration Without Definition.
  2. Incorrect Scope Resolution.
  3. 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;
}

Output

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++?




Reffered: https://www.geeksforgeeks.org


C++

Related
How to Fix Undefined Reference Error in C++? How to Fix Undefined Reference Error in C++?
How to Check if a Template Class has the Given Member Function in C++? How to Check if a Template Class has the Given Member Function in C++?
How to Ask User Input Until Correct Input is Received? How to Ask User Input Until Correct Input is Received?
How to Initialize a Dynamic Array in C++? How to Initialize a Dynamic Array in C++?
How to Capture std::vector in Lambda Function? How to Capture std::vector in Lambda Function?

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
12