非常非常简单的 C++ 程序中的“未定义引用”错误

2023-12-09

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

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

/tmp/ccm92rdR.o:在 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;
}

有谁知道为什么会发生这种情况?

非常感谢。


代码几乎是完美的。

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

将文件一起编译为g++ main.cpp add.cpp它会产生一个可执行文件a.out

您可以运行可执行文件./a.out它将产生输出“The sum of 3 and 4 is 7”(不带引号)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非常非常简单的 C++ 程序中的“未定义引用”错误 的相关文章

随机推荐

  • web.config 中的 C# 命名空间

    来自 VB 背景并被迫学习 C 的我遇到了第一个障碍 在 VB 中 我可以将我想要在整个应用程序中可用的所有命名空间放入 web config 文件中 并且它将在每个代码隐藏文件中可用 而无需添加导入语句
  • 在单体 SpringBoot 应用程序中创建集成测试

    我被要求为一个非常大的 SpringBoot 项目中的一个服务创建一个集成测试 该项目产生了数十个已实现的服务 执行应用程序时 会部署所有这些服务 我想避免部署与我正在为其创建测试的服务无关的所有服务 不幸的是 我 还 没有像我希望的那样有
  • ViewBox 使 RichTextBox 失去插入符

    RichTextBox 放置在 ViewBox 内并缩放至 10 1000 的各个级别 当百分比小于 100 时 插入符号会在随机光标位置消失 我知道当视觉效果被缩小 压缩 时 它会丢失像素 有什么办法可以让我不再丢失光标吗
  • create-react-app 和节点服务器的 ECONNREFUSED 错误

    我正在使用 create react app 因此没有自定义 webpack 和节点服务器构建 MERN 应用程序 我正在使用 nodemon 重新启动后端上的更改 问题是大约一半的时间似乎我的前端尝试在 nodemon 重新启动节点服务器
  • jQuery .click() 不起作用?

    我在 html 表中生成了一组按钮 如下所示 然后我想在单击时调用该函数 each childData function key item var packPath key replace g Replace underscore with
  • 根据第一个非零将数字舍入到最接近的“nth”

    我想将 Double 舍入到小数点后最接近的非零数字 例如 x 0 002341 rounded 0 002 x 0 000048123 rounded 0 00005 对于基数 gt 0 的情况 应该这样执行 x 1 000234 rou
  • 将列表向量转换为向量向量

    我的 txt 文件中有以下数据 1 John Smith 123 Here Street 456 4567 2 Sue Jones 43 Rose Court Street 345 7867 3 Fan Yuhong 165 Happy L
  • 创建转弯导航 iPhone 应用程序

    我正在尝试构建一个像 TomTom 或 Mapquest 这样的路线导航应用程序 并且我正在寻找一些入门帮助 以获取可用选项和许可 如果有 从技术上讲 我认为通过 Core Location 在地图上绘制当前位置或地址相当容易 但我有一些更
  • null 在此代码中如何工作? [复制]

    这个问题在这里已经有答案了 null 在此代码中如何工作 为什么它不打印对象 class Test1 public void doStuff Object o System out println In Object public void
  • 使用 MongoDB / Meteor 更新数组中的特定元素

    users voted user id AQG8ECLdBRJ4jwPMG score down 想知道我将如何更新users votedfield 是一个数组对象 我需要更新一个特定的对象 我知道index该对象所在的位置 我只需要弄清楚
  • 如何正确关闭 ODP.net 连接:dispose() 或 close()?

    这是我的powershell代码 void System Reflection Assembly LoadFile C DLL Oracle ManagedDataAccess dll OracleConnexion New Object
  • nginx 未知指令“auth_jwt”

    我想在我的 nginx 上设置 jwt auth 但出现此错误 nginx emerg unknown directive auth jwt in usr local etc nginx nginx conf 我的 nginx 版本 ngi
  • 以编程方式确定 UNC 路径中的可用空间

    是否有用于从 UNC 路径确定 NAS 存储上的可用空间的编程 API 我查看了 WMI 文档 并不清楚这是否可行 如果有代码示例和相关 API 调用的参考 我们将不胜感激 在 Windows API 中 获取FreeDiskSpaceEx
  • 饼图透明度,多个饼图

    我想将两个饼图堆叠在一起 这里的想法是将其中一个变小 这样您就只能看到后面饼图的外环 我尝试使用 chartCalProgres BackColor Color Transparent chartCalProgres ChartAreas
  • android.net.wifi.WifiManager 中缺少方法

    在网站上androidjavadoc com 一个方法startScanActive被列在类中WifiManager这使得执行主动 Wi Fi 扫描成为可能 它一直在这里讨论最近也是 然而 当我尝试在 Eclipse 中使用该方法时 找不到
  • 为什么 TFontDialog 提供的字体比 Screen.Fonts 少?

    我想知道为什么 TFontDialog 提供的字体比 Screen Fonts 少 例如 Arial 字体 Comic 字体等不会在 TFontDialog 中显示 TFontDialog 给出的字体列表似乎与 WordPad 相同 而 S
  • 掌握 Node JS 多线程的替代方案

    如果我理解正确的话 Node JS 是非阻塞的 所以它不会等待数据库或其他进程的响应 而是转移到其他东西并稍后检查 而且它是单线程的 那么这一切是否意味着给定的 Node JS 进程可以充分有效地利用单个 CPU 核心 但它不会使用机器上的
  • 如何在运行时以最小的开销共享全局常量?

    我正在使用 C 11 我不允许使用像 boost 等外部库 我必须只使用 STL 我有许多事件 必须将其标识为字符串常量 我不允许使用枚举或整数或任何其他数据类型 例如 事件名称1 事件名称2 some other event name3
  • 从 EmitterProcessor 移动到 Sinks.many()

    已经使用有一段时间了create an EmitterProcessor内置sink如下 EmitterProcessor
  • 非常非常简单的 C++ 程序中的“未定义引用”错误

    我有一个简单的程序 我完全从示例中复制了它http www learncpp com cpp tutorial 19 header files 因为我正在学习如何使用多个文件制作 C 程序 程序可以编译 但构建时出现以下错误 tmp ccm