【发布时间】:2015-12-11 12:28:53
【问题描述】:
我知道这一定是个愚蠢的问题,但我现在 5 个小时都无法解决这个问题,这让我很生气:我正在学习 C++ 并按照我的要求做所有事情,但我无法构建我的函数,因为编译器无法识别我的函数。我尝试使用一个绝对简单的,但问题仍然存在。我正在使用代码块。 main.cpp、ezmukszik.cpp 和 ezmukszik.h 在同一个项目库中,我检查了 Settings/Compiler/Build Options 以将工作目录显式添加到编译器搜索目录。错误信息如下:
in function main
/in line 8/ undefined reference to 'ezmukszik()'
标题:
#ifndef EZMUKSZIK_H_INCLUDED
#define EZMUKSZIK_H_INCLUDED
#include <iostream>
int ezmukszik();
#endif // EZMUKSZIK_H_INCLUDED
源代码:
#include <iostream>
using namespace std;
int ezmukszik()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
还有主要的:
#include <iostream>
#include "D:\BME suli\C++\Programok\ezmukszik\ezmukszik.h"
using namespace std;
int main()
{
ezmukszik();
return 0;
}
任何帮助将不胜感激!
【问题讨论】:
-
确保“ezmukszik.cpp”在“sources”而不是“headers”下。看起来它没有被传递给链接器。
-
包含文件中的反斜杠是转义字符。正斜杠 / 应该和 \\ 一样好用
-
不幸的是它在来源之下。
-
你的
ezmukszik.cpp应该包括ezmukszik.h -
一些不相关的 cmets:不要在头文件中包含 iostream,因为那里不需要它,在 ezmukszik.cpp 中包含“ezmukszik.h”头文件。不要在全局范围内使用
using namespace std,当你包含“ezmukszik.h”时不要使用这样的绝对路径,而是在make文件或你使用的任何构建环境中添加包含路径。
标签: c++ codeblocks undefined-reference