


How to solve C++ compilation error: 'undefined reference to 'namespace::function''?
Solution to C compilation error: 'undefined reference to 'namespace::function'', how to solve it?
When writing programs in C, we often encounter some compilation errors. One of the common errors is 'undefined reference to 'namespace::function', which means that the definition of the function cannot be found during the linking phase. This error usually occurs when we call functions defined in other source files or libraries. This article will focus on this error and introduce several possible solutions.
Before we start to solve this error, let's take a look at a simple code example:
// file1.cpp #include <iostream> void foo(); int main() { foo(); return 0; }
// file2.cpp #include <iostream> void foo() { std::cout << "Hello, world!" << std::endl; }
In the above example, we define a function foo()
, and It is called in the main()
function. We can save these two code files as file1.cpp
and file2.cpp
respectively.
When we try to compile and link these two files together, we are likely to encounter the following error:
undefined reference to `foo()'
So, how to solve this error? Here are several possible solutions:
Compile and link all source files together:
This is the simplest solution, just compile the two source files together and link. Taking the GNU compiler as an example, we can use the following command to compile the two files together:g++ file1.cpp file2.cpp -o program
Copy after loginand then use
./program
to run the generated executable file.Using the declaration of the function:
If we put the declaration of thefoo()
function at the beginning of thefile1.cpp
file, This will solve the compilation error. Modifyfile1.cpp
as follows:// file1.cpp #include <iostream> void foo(); // 在这里添加函数声明 int main() { foo(); return 0; }
Copy after loginThen compile and link the two files together, and the program can be successfully executed.
Using header files:
We can put the declaration of thefoo()
function in a separate header file, and then infile1. cpp
andfile2.cpp
contain this header file respectively. Modify the code as follows:// file1.cpp #include <iostream> #include "functions.h" // 包含头文件 int main() { foo(); return 0; }
Copy after login// file2.cpp #include <iostream> #include "functions.h" // 包含头文件 void foo() { std::cout << "Hello, world!" << std::endl; }
Copy after loginfunctions.h
The content of the header file is as follows:// functions.h void foo(); // 函数声明
Copy after loginThen compile and link the two files together, and the program can be successfully executed.
Through the above three methods, we can successfully solve the 'undefined reference to 'namespace::function' compilation error. Of course, you may encounter other more complex situations in actual programming, but the ideas for solving the problem are similar: ensure that the definition and declaration of the function are visible where they need to be called.
Summary:
When we encounter the error 'undefined reference to 'namespace::function' in C programming, we must first make it clear that this error occurs during the linking phase, indicating that the function cannot be found. Definition. We can solve this error by compiling and linking all source files together, using function declarations, using header files, etc. Note, when troubleshooting errors, make sure that function definitions and declarations are visible where they are called.The above is the detailed content of How to solve C++ compilation error: 'undefined reference to 'namespace::function''?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Steam is a world-renowned gaming platform that allows users to purchase, download and play games. However, sometimes users may encounter some problems when using Steam, such as error code 118. In this article, we will explore this problem and how to solve it. First, let’s understand what error code 118 means. Error code 118 appears when you try to log into Steam, which means your computer cannot connect to the Steam servers. This may be due to network issues, firewall settings, proxy settings, or

Solution to the problem that Win11 system cannot install Chinese language pack With the launch of Windows 11 system, many users began to upgrade their operating system to experience new functions and interfaces. However, some users found that they were unable to install the Chinese language pack after upgrading, which troubled their experience. In this article, we will discuss the reasons why Win11 system cannot install the Chinese language pack and provide some solutions to help users solve this problem. Cause Analysis First, let us analyze the inability of Win11 system to

When using Steam to download, update or install games, you often encounter various error codes. Among them, a common error code is E20. This error code usually means that the Steam client is having trouble trying to update the game. Fortunately, though, it's not that difficult to fix this problem. First, we can try the following solutions to fix error code E20. 1. Restart the Steam client: Sometimes, directly restarting the Steam client can solve this problem. In the Steam window

As smartphone technology continues to develop, mobile phones play an increasingly important role in our daily lives. As a flagship phone focusing on gaming performance, the Black Shark phone is highly favored by players. However, sometimes we also face the situation that the Black Shark phone cannot be turned on. At this time, we need to take some measures to solve this problem. Next, let us share five tips to teach you how to solve the problem of Black Shark phone not turning on: Step 1: Check the battery power. First, make sure your Black Shark phone has enough power. It may be because the phone battery is exhausted

With the continuous development of social media, Xiaohongshu has become a platform for more and more young people to share their lives and discover beautiful things. Many users are troubled by auto-save issues when posting images. So, how to solve this problem? 1. How to solve the problem of automatically saving pictures when publishing on Xiaohongshu? 1. Clear the cache First, we can try to clear the cache data of Xiaohongshu. The steps are as follows: (1) Open Xiaohongshu and click the "My" button in the lower right corner; (2) On the personal center page, find "Settings" and click it; (3) Scroll down and find the "Clear Cache" option. Click OK. After clearing the cache, re-enter Xiaohongshu and try to post pictures to see if the automatic saving problem is solved. 2. Update the Xiaohongshu version to ensure that your Xiaohongshu

Everyone knows that if the computer cannot load the driver, the device may not work properly or interact with the computer correctly. So how do we solve the problem when a prompt box pops up on the computer that the driver cannot be loaded on this device? The editor below will teach you two ways to easily solve the problem. Unable to load the driver on this device Solution 1. Search for "Kernel Isolation" in the Start menu. 2. Turn off Memory Integrity, and it will prompt "Memory Integrity has been turned off. Your device may be vulnerable." Click behind to ignore it, and it will not affect the use. 3. The problem can be solved after restarting the machine.

The Linux Chinese garbled problem is a common problem when using Chinese character sets and encodings. Garbled characters may be caused by incorrect file encoding settings, system locale not being installed or set, and terminal display configuration errors, etc. This article will introduce several common workarounds and provide specific code examples. 1. Check the file encoding setting. Use the file command to view the file encoding. Use the file command in the terminal to view the encoding of the file: file-ifilename. If there is "charset" in the output

Title: How to solve the problem that PyCharm cannot be opened. PyCharm is a powerful Python integrated development environment, but sometimes we may encounter the problem that PyCharm cannot be opened. In this article, we'll share some common workarounds and provide specific code examples. Hope this helps those who encounter this problem. Method 1: Clear the cache Sometimes PyCharm’s cache files may cause the program to fail to open normally. We can try clearing the cache to solve this problem. Tool
