关于vs2010运行多文件程序老是出现“fatal error LNK1169: 找到一个或多个多重定义的符号”的问题?
最近在用vs2010学习C语言编程,运行了一个多文件程序,其中包含两个文件:1)asklfjas.cpp代码如下://asklfjas.cpp:定义控制台应用程序的入口点...
最近在用vs2010学习C语言编程,运行了一个多文件程序,其中包含两个文件:
1)asklfjas.cpp代码如下:
// asklfjas.cpp : 定义控制台应用程序的入口点。
#include <stdio.h>
#include "file1.cpp"
int main()
{
printf("%d",max(1,2));
}
2)file1.cpp代码如下:
#include <stdio.h>
int max(int x,int y)
{
//printf("%d,%d\n",x,y);
int z;
if(x>y) z=1;
else if(x==y) z=0;
else z=-1;
return z;
}
程序很简单,编译也能正常的通过:
asklfjas.cpp
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
但是在运行的时候就会出现错误提示:
1>file1.obj : error LNK2005: "int __cdecl max(int,int)" (?max@@YAHHH@Z) 已经在 asklfjas.obj 中定义
1>C:\Documents and Settings\Administrator\my documents\visual studio 2010\Projects\asklfjas\Debug\asklfjas.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
很多人说这类问题可能是由多个main函数造成的,但是我这个明显不是这个问题。在出现这个问题的时候asklfjas.cpp和file1.cpp都是在源文件夹下的,如图
后来我发现将file1.cpp从源文件夹中移除
程序竟然就可以正常运行了
当然这个时候file1.cpp文件还是在该项目保存的文件夹下的,但是我依然是很不解为什么会出现这个样的情况,莫非是跟2010的编译器有什么关系?求大神知道啊~
我一共只有20分,全写上了~望赐教~
不好意思关于分数的这个问题,我早上提问了一次就是悬赏20分,但是被百度给删了,不知道什么原因,然后我再这次提问的时候没有看分数,刚才才发现我已经没分了,不好意思~ 展开
1)asklfjas.cpp代码如下:
// asklfjas.cpp : 定义控制台应用程序的入口点。
#include <stdio.h>
#include "file1.cpp"
int main()
{
printf("%d",max(1,2));
}
2)file1.cpp代码如下:
#include <stdio.h>
int max(int x,int y)
{
//printf("%d,%d\n",x,y);
int z;
if(x>y) z=1;
else if(x==y) z=0;
else z=-1;
return z;
}
程序很简单,编译也能正常的通过:
asklfjas.cpp
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
但是在运行的时候就会出现错误提示:
1>file1.obj : error LNK2005: "int __cdecl max(int,int)" (?max@@YAHHH@Z) 已经在 asklfjas.obj 中定义
1>C:\Documents and Settings\Administrator\my documents\visual studio 2010\Projects\asklfjas\Debug\asklfjas.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
很多人说这类问题可能是由多个main函数造成的,但是我这个明显不是这个问题。在出现这个问题的时候asklfjas.cpp和file1.cpp都是在源文件夹下的,如图
后来我发现将file1.cpp从源文件夹中移除
程序竟然就可以正常运行了
当然这个时候file1.cpp文件还是在该项目保存的文件夹下的,但是我依然是很不解为什么会出现这个样的情况,莫非是跟2010的编译器有什么关系?求大神知道啊~
我一共只有20分,全写上了~望赐教~
不好意思关于分数的这个问题,我早上提问了一次就是悬赏20分,但是被百度给删了,不知道什么原因,然后我再这次提问的时候没有看分数,刚才才发现我已经没分了,不好意思~ 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询