"undefined reference"非常简单的C ++程序中的错误

"undefined reference" error in a very very simple c++ program

本文关键字:程序 错误 非常 简单 undefined reference      更新时间:2023-10-16

我有一个简单的程序,我完全从http://www.learncpp.com/cpp-tutorial/19-header-files/中的示例复制,因为我正在学习如何使用多个文件制作c++程序。

程序编译,但在构建时,出现以下错误:

/tmp/ccm92rdR。在main函数中:Main.cpp:(.text+0x1a):对add(int, int)的未定义引用Collect2: ld返回1退出状态

代码如下:

main.cpp

#include <iostream>
#include "add.h" // this brings in the declaration for add()
int main()
{
    using namespace std;
    cout << "The sum of 3 and 4 is " << add(3, 4) << endl;
    return 0;
}

add.h

#ifndef ADD_H
#define ADD_H
int add(int x, int y); // function prototype for add.h
#endif

add.cpp

int add(int x, int y)
{
    return x + y;
}

有人知道为什么会这样吗?

代码几乎完美。

add.cpp中添加一行#include "add.h"

将这些文件编译为g++ main.cpp add.cpp,它将产生一个可执行的a.out

你可以以./a.out的形式运行这个可执行文件,它会输出"3和4的总和是7";(不带引号)

当有许多。c或。cpp源代码并且其中一些未编译时,可能会出现未定义引用。

关于如何做到这一点的一个很好的"一步一步"的解释是在这里