我有以下 .h 和 .cpp 文件
如果必须,我将包含函数定义的完整代码
当我编译我的程序时,我得到了最后显示的错误
哈希.h
#define BUCKETS 64
#define B_ENTRIES 50000
int curr_tanker;
typedef unsigned long int ulong;
typedef struct bucket
{
int bucket_id;
ulong bucket_entries;
}bucket;
typedef struct tanker_record
{
ulong tanker_id;
ulong tanker_size;
ulong num_of_entries;
ulong bucket_entry_count;
}tanker_record;
typedef struct fpinfo
{
unsigned long chunk_offset;
unsigned long chunk_length;
unsigned char fing_print[33];
}fpinfo;
struct fpinfo* InitHTable(fpinfo *);
int CreateTanker(tanker_record tr[]);
int Hash_CreateEntry(struct fpinfo *,struct fpinfo he,tanker_record tr);
ht.cpp
#include <stdlib.h>
#include <string.h>
#include<stdio.h>
#include <iostream>
#include "ht.h"
struct fpinfo* InitHTable(struct fpinfo ht[][B_ENTRIES])
{
}
int CreateTanker(tanker_record tr[])
{
}
int
Hash_CreateEntry(struct fpinfo *t[][B_ENTRIES],struct fpinfo he,tanker_record tr[])
{
}
static void
WriteHTtoFile(struct fpinfo *t[][B_ENTRIES],int this_tanker)
{
}
主文件
#include<iostream>
#include"ht.cpp"
#include<conio.h>
#include<stdlib.h>
void main(int argc, char **argv)
{
static fpinfo hash_table[BUCKETS][B_ENTRIES];
static tanker_record tr[100];
InitHTable(&hash_table[0][0]);
CreateTanker(tr);
struct fpinfo fp;
...
ar = Hash_CreateEntry(&hash_table[0][0], fp,tr[0]);
当我尝试使用 vc2010 编译它时出现以下错误
1>main.obj : error LNK2005: "struct fpinfo * __cdecl InitHTable(struct fpinfo (* const)[50000])" (?InitHTable@@YAPAUfpinfo@@QAY0MDFA@U1@@Z) 已经在 ht.obj 中定义
1>main.obj : error LNK2005: "int __cdecl CreateTanker(struct tanker_record * const)" (?CreateTanker@@YAHQAUtanker_record@@@Z) 已经在 ht.obj 中定义
1>main.obj : error LNK2005: "int __cdecl Hash_CreateEntry(struct fpinfo * (* const)[50000],struct fpinfo,struct tanker_record * const)" (?Hash_CreateEntry@@YAHQAY0MDFA@PAUfpinfo@@U1@QAUtanker_record@@@ Z)已在 ht.obj 1>main.obj 中定义:错误 LNK2005:“int curr_tanker”(?curr_tanker@@3HA)已在 ht.obj 1>main.obj 中定义:错误 LNK2019:未解析的外部符号“int __cdecl Hash_CreateEntry (struct fpinfo *,struct fpinfo,struct tanker_record)" (?Hash_CreateEntry@@YAHPAUfpinfo@@U1@Utanker_record@@@Z) 在函数 _main 1>main.obj 中引用:错误 LNK2019:未解析的外部符号“struct fpinfo * __cdecl InitHTable (struct fpinfo *)" (?InitHTable@@YAPAUfpinfo@@PAU1@@Z) 在函数_main中引用
感谢您的帮助!!