0

私のプロジェクトには、io.cpp で定義された関数「PrintHeader」があります。メインファイルに 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.

2 番目のエラー セットは 2 回定義しているので理解できますが、重複した定義を削除しただけでは機能しない理由がわかりません。どんな助けでも大歓迎です。

メインファイル

#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 に答える