|
|
我自己写了一些串的函数在文件(串的堆实现.c)中,编译通过,有写了如下一段(仅测试其中的几个函数):[CODE]
#include
#include
#include "c:\串的堆实现.c"
main(){
char chars1[]="HelloWorld!";
char chars2[]="computer";
HString *S; //HString是自定义的串类型
HString T;
StrAssing(S,chars1); //由字符常量chars1生成串S
StrPrint(*S); //打印S
StringCopy(&T,*S); //由串S生成新串T
StrPrint(T);
}
[\CODE]
单独编译此程序也通过,在build该程序时有如下错误:
--------------------Configuration: Text1 - Win32 Debug--------------------
Linking...
串的堆实现.obj : error LNK2005: _StrAssing already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrCopy already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrEmpty already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrCompare already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrLength already defined in Text1.obj
串的堆实现.obj : error LNK2005: _ClearString already defined in Text1.obj
串的堆实现.obj : error LNK2005: _Concat already defined in Text1.obj
串的堆实现.obj : error LNK2005: _Substring already defined in Text1.obj
串的堆实现.obj : error LNK2005: _Index already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrDelete already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrInsert already defined in Text1.obj
串的堆实现.obj : error LNK2005: _Replace already defined in Text1.obj
串的堆实现.obj : error LNK2005: _StrPrint already defined in Text1.obj
Text1.obj : error LNK2001: unresolved external symbol _StringCopy
Debug/Text1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Text1.exe - 15 error(s), 0 warning(s)
可能是重复定义了,我又#include的句子都去了,把"串的堆实现.c"文件加到project中,结果又有了如下的错误:
C:\Text1.c(4) : error C2065: 'HString' : undeclared identifier
C:\Text1.c(4) : error C2065: 'T' : undeclared identifier
C:\Text1.c(4) : error C2065: 'S' : undeclared identifier
C:\Text1.c(5) : warning C4013: 'StrAssing' undefined; assuming extern returning int
C:\Text1.c(6) : warning C4013: 'StrPrint' undefined; assuming extern returning int
C:\Text1.c(6) : error C2100: illegal indirection
C:\Text1.c(7) : warning C4013: 'StrCopy' undefined; assuming extern returning int
C:\Text1.c( : error C2100: illegal indirection
Error executing cl.exe.
Text1.exe - 5 error(s), 3 warning(s)
1.我在c文件中有HString结构的定义,函数也都有返回类型的定义,这些错是什么原因呢?请指教!
2.如果在linux中编译,遇到这样的问题怎么解决? |
|