【发布时间】:2012-10-16 06:16:35
【问题描述】:
您好,我刚开始学习 C++。我为傻瓜书买了这本大的 C++ 书,并且一直在阅读它。到目前为止它真的很有趣,但现在我被困住了。我一直在谷歌搜索这个问题,但无济于事。我正在使用我正在使用带有 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
【问题讨论】:
-
你不知道你不是什么?你不是太空总裁,这是一回事。您也没有将所有文件链接在一起。
-
向我们展示你是如何构建它的——你的链接阶段出了点问题。
-
该错误信息意味着编译器无法找到
SafeCracker的定义(即函数的实际代码)。您是否已将包含该函数的文件添加到您的代码块项目中? -
它是代码块项目的一部分。我真的不知道它是如何构建的,代码块一直在处理那部分。我需要在编译器设置中做些什么吗?
-
附带说明,您使用的是字符串数据类型,但不包括字符串类。您应该将“#include
”(不带引号)放在“#include ”的上方或下方。一些编译器在检测到缺少头文件时会自动为您包含头文件,但这不是标准,因此不应依赖它。
标签: c++ linker-errors codeblocks