0

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

1 回答 1

2

您很可能在 main.cpp 中包含了错误的文件。include "io.h"您可以通过右键单击并选择打开文件来确保它是正确的文件。

于 2012-09-09T17:05:13.547 回答