我的项目有一个函数“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