我的项目有一个函数“PrintHeader”,在io.cpp中定义。即使io.h包含在我的主文件中,我也会收到错误
error C3861: 'PrintHeader': identifier not found.
当我将PrintHeader的功能复制到我的主文件中时,我收到错误
error LNK2005: 'void _cdeci PrintHeader(void)" (?PrintHeader@@YAXXZ) already defined in io.obj.
和
error LNK1169: one or more multiply defined symbols found.
我可以理解第二个错误集,因为我确实已经定义了两次,但我不明白为什么当我删除重复的定义时它不起作用。任何帮助是极大的赞赏。
主档
#include "stdio.h"
#include <iostream>
#include "io.h"
void PrintHeader()
{
cout << endl;
cout << "Month\tPrincipal\t Interest\t Balance" << endl;
cout << "-----\t---------\t---------\t---------" << endl;
}
int main()
{
cout << "Hello World\n";
PrintHeader();
getchar();
return 0;
}
io.cpp
#include <iostream>
#include <iomanip>
#include "io.h"
void PrintHeader (void)
{
cout << endl;
cout << "Month\tPrincipal\t Interest\t Balance" << endl;
cout << "-----\t---------\t---------\t---------" << endl;
}
io.h
#ifndef __IO_H__
#define __IO_H__
#include <string>
using namespace std;
void PrintHeader (void);
#endif
答案 0 :(得分:2)
您最有可能在main.cpp中包含错误的文件。您可以通过右键单击include "io.h"
并选择打开文件来确保它是正确的文件。