gpt4 book ai didi

c++ - 编译器/链接器错误 "undefined reference"

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:44 25 4
gpt4 key购买 nike

您好,我刚开始学习 C++。我买了这本大 C++ for Dummies 书,并且一直在阅读它。到目前为止真的很有趣,但现在我被困住了。我一直在谷歌搜索这个问题,但无济于事。我正在使用我正在使用带有 GNU GCC 的代码块 10.05。

我不断收到一条错误消息:

In function 'main':
undefined reference to 'SafeCracker(int)'

代码并不复杂。我是新来的,非常沮丧。我不想跳过这一部分;我想知道发生了什么事。

主要内容:

#include <iostream>
#include "safestuff.h"

using namespace std;

int main()
{
cout << "Surprise, surprise!" << endl;
cout << "The combination is (once again)" << endl;
cout << SafeCracker(12) << endl;
return 0;
}

功能:

#include <iostream>

using namespace std;

string SafeCracker(int SafeID)
{
return "13-26-16";
}

标题:

using namespace std;

#ifndef SAFESTUFF_H_INCLUDED
#define SAFESTUFF_H_INCLUDED

string SafeCracker(int SafeID);

#endif // SAFESTUFF_H_INCLUDED

最佳答案

您没有编译与第一个文件一起列出的第二个文件。尝试直接使用 gcc 进行编译以了解这一点。

假设您的文件被命名为:

  • main.cpp
  • SafeCracker.cpp
  • safestuff.h

这就是你在做什么

gcc main.cpp

当你应该这样做的时候

gcc main.cpp SafeCracker.cpp

另外,为了清楚起见,SafeCracker.cpp 也应该包括头文件。有什么理由让他们分开?

另外,看到胡大侠的回答,<iostream>自动包括 <string>为你。您不应依赖此功能,而应包含 <string>在每个使用字符串的文件中。

(来自下面的评论)您可能正在尝试将 main.cpp 构建为独立文件。这将使 SafeCracker.cpp 保持未编译状态。您需要在 Codeblocks 中创建一个项目并将所有三个文件添加到其中(*.cpp 文件和 *.h 文件)。

关于c++ - 编译器/链接器错误 "undefined reference",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com