[蔡鸟问题]vc6.0中多文件程序编译错误问题,请细谈,谢谢!!
一下编译时完整错误信息:
--------------------Configuration: exp0518 - Win32 Debug--------------------
Linking...
exp0518.obj : error LNK2001: unresolved external symbol "void __cdecl fun3(void)" (?fun3@@YAXXZ)
exp0518.obj : error LNK2001: unresolved external symbol "void __cdecl fun2(void)" (?fun2@@YAXXZ)
exp0518.obj : error LNK2001: unresolved external symbol "void __cdecl fun1(void)" (?fun1@@YAXXZ)
Debug/exp0518.exe : fatal error LNK1120: 3 unresolved externals
执行 link.exe 时出错.
exp0518.exe - 1 error(s), 0 warning(s)
其中的三个文件分别是:exp0518.cpp、file1.cpp、file2.cpp,main函数在第一个文件里,分列如下:
exp0518.cpp代码:
#include<iostream.h>
void fun1(),fun2(),fun3();
int i(5);
void main()
{
i=10;
fun1();
cout<<"main():i="<<i<<endl;
fun2();
cout<<"main():i="<<i<<endl;
fun3();
cout<<"main():i="<<i<<endl;
}
file1.cpp代码:
#include<iostream.h>
static int i;
void fun1()
{
i=20;
cout<<"fun1():i(static)="<<i<<endl;
}
file2.cpp代码:
#include<iostream.h>
void fun2()
{
int i(10);
cout<<"fun2():i(anto)="<<i<<endl;
if(i)
{
extern int i;
cout<<"fun2():i(extern)="<<i<<endl;
}
}
extern int i;
void fun3()
{
i=20;
cout<<"fun3():i(extern)="<<i<<endl;
if(i)
{
int i(5);
cout<<"fun3():i(auto)="<<i<<endl;
}
}
请高手指教为什么编译时会报以上的错误消息?问题出在哪里?该怎样修改解决这问题?谢谢!!
[解决办法]
VS2005可以编译运行
[解决办法]
VC6.0也可以编译运行
[解决办法]
void fun1(),fun2(),fun3();
这样可以吗?我确实不知道,从没这样写过
[解决办法]
把两个文件放在同一个目录下,或者在编译选项中加也可以。把void fun1(),fun2(),fun3()改为extern void fun1(),fun2(),fun3()