c – 编译器/链接器错误“未定义的引用”
发布时间:2020-12-16 05:01:59 所属栏目:百科 来源:网络整理
导读:嗨,我刚刚开始学习C语言.我为傻瓜书买了这个大C,并且经历过它.到目前为止它真的很有趣,但现在我被卡住了.我一直在谷歌搜索这个问题,但无济于事.我正在使用我使用的代码块10.05与GNU GCC. 我一直收到错误消息: In function 'main':undefined reference to 'S
嗨,我刚刚开始学习C语言.我为傻瓜书买了这个大C,并且经历过它.到目前为止它真的很有趣,但现在我被卡住了.我一直在谷歌搜索这个问题,但无济于事.我正在使用我使用的代码块10.05与GNU GCC.
我一直收到错误消息: 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 这就是你在做什么 gcc main.cpp 虽然你应该这样做 gcc main.cpp SafeCracker.cpp 此外,SafeCracker.cpp也应该包含头文件,只是为了清楚起见.你将它们分开的原因是什么? 另一方面,从看到Daniel Hu的回答,< iostream>自动包含< string>为了你.您不应该依赖此功能,而应该包含< string>在每个使用字符串的文件中. (来自下面的评论)您可能正在尝试将main.cpp构建为独立文件.这将使SafeCracker.cpp无法编译.您需要的是在Codeblocks中创建一个项目并将所有三个文件添加到它(* .cpp文件以及* .h文件). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |