源程序
--c1.h---
#include <stdio.h>
#include <stdlib.h>
#define Ok 1
#define Error 0
#define OverFlow -1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---c2.h---
//创建链表节点的结构.
typedef int ElemData; //指定链表中数据的类型.typedef struct Node{
ElemData data;
Node *next;
}Node;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` ---LinkList.cpp---
#include "c1.h"
#include "c2.h"Node *CreateLinkList(int n) {...}int InsertNode(Node *head,int i,ElemData e) {...}int DeteleNode(Node *head,int i,int *e) {...}void OverLinkList(Node *head){...}int setNodeData(Node *p,int data){...}
~~~~~~~~~~~~~~~~~~~~~~~`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---MainLinkList.cpp---
#include "LinkList.cpp"void main() {
Node *head,*p;
head = CreateLinkList(3);
p = head;
}编译都没有问题,
但是在bulid时候报错。
Linking...
MainLinkList.obj : error LNK2005: "struct Node * __cdecl CreateLinkList(int)" (?CreateLinkList@@YAPAUNode@@H@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "int __cdecl InsertNode(struct Node *,int,int)" (?InsertNode@@YAHPAUNode@@HH@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "int __cdecl DeteleNode(struct Node *,int,int *)" (?DeteleNode@@YAHPAUNode@@HPAH@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "void __cdecl OverLinkList(struct Node *)" (?OverLinkList@@YAXPAUNode@@@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "int __cdecl setNodeData(struct Node *,int)" (?setNodeData@@YAHPAUNode@@H@Z) already defined in LinkList.objDebug/yf_console.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.yf_console.exe - 1 error(s), 0 warning(s)是什么问题呀,困扰我好几天了。再过几天就要考试了,肯请各位大侠帮帮小弟吧。
最好能讲的详细些
--c1.h---
#include <stdio.h>
#include <stdlib.h>
#define Ok 1
#define Error 0
#define OverFlow -1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---c2.h---
//创建链表节点的结构.
typedef int ElemData; //指定链表中数据的类型.typedef struct Node{
ElemData data;
Node *next;
}Node;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` ---LinkList.cpp---
#include "c1.h"
#include "c2.h"Node *CreateLinkList(int n) {...}int InsertNode(Node *head,int i,ElemData e) {...}int DeteleNode(Node *head,int i,int *e) {...}void OverLinkList(Node *head){...}int setNodeData(Node *p,int data){...}
~~~~~~~~~~~~~~~~~~~~~~~`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---MainLinkList.cpp---
#include "LinkList.cpp"void main() {
Node *head,*p;
head = CreateLinkList(3);
p = head;
}编译都没有问题,
但是在bulid时候报错。
Linking...
MainLinkList.obj : error LNK2005: "struct Node * __cdecl CreateLinkList(int)" (?CreateLinkList@@YAPAUNode@@H@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "int __cdecl InsertNode(struct Node *,int,int)" (?InsertNode@@YAHPAUNode@@HH@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "int __cdecl DeteleNode(struct Node *,int,int *)" (?DeteleNode@@YAHPAUNode@@HPAH@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "void __cdecl OverLinkList(struct Node *)" (?OverLinkList@@YAXPAUNode@@@Z) already defined in LinkList.objMainLinkList.obj : error LNK2005: "int __cdecl setNodeData(struct Node *,int)" (?setNodeData@@YAHPAUNode@@H@Z) already defined in LinkList.objDebug/yf_console.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.yf_console.exe - 1 error(s), 0 warning(s)是什么问题呀,困扰我好几天了。再过几天就要考试了,肯请各位大侠帮帮小弟吧。
最好能讲的详细些
怎么改呀,改成LinkList.h吗。
老师给的 实训例子程序 中就是这么写的呀。
有#include "xxx.cpp"
还是弄个头文件,把函数声明放在头文件里