我想学习使用头文件。我收到了一个错误。这是我的代码:
printmyname.h:
void printMyName();
printmyname.cpp:
#include "printmyname.h"
void printMyName() {
cout << "omer";
}
try.cpp(主文件):
#include <iostream>
#include "printmyname.h"
using namespace std;
int main() {
printMyName();
return 0;
}
这是错误:
undefined reference to `printMyName()`
问题是什么?
答案 0 :(得分:4)
在这种情况下,Undefine引用与头文件无关。这意味着链接器无法找到printMyName
中printmyname.cpp
的实现。如果您使用g++
,则应尝试:
g++ try.cpp printmyname.cpp -o yourBinaryName
如果您使用的是makefile,则应该为try.cpp正确添加依赖项(printmyname.cpp)。
编辑:
正如@zmo在他的评论中所说:
你也可以通过两次编译(更适合Makefile)来实现:
g++ -c printmyname.cpp
g++ try.cpp printmyname.o -o yourBinaryName
答案 1 :(得分:0)
如果您使用的是Windows,则还需要将printmyname.cpp添加到项目中。 考虑添加include guard to your header
#ifndef PRINTMYNAME_INCLUDED
#define PRINTMYNAME_INCLUDED
void printMyName();
#endif
您还需要将#include <iostream>
和using namespace std;
从try.cpp移动到printmyname.cpp文件。
答案 2 :(得分:-6)
您只需要在printMyName.cpp中的printMyName.cpp中添加代码/定义。
void printMyName();
{
cout << "omer";
}