VC++编译出错

sybase2000 2004-10-18 04:10:47
小弟初学VC,现有一程序编译出错,请大家看看(两个cpp文件):

/* main.cpp 主程序 */
#include<iomanip.h>
#include"abc.cpp"
void main()
{
double a,b,c;
double averageValue;
a=2;b=3;c=4;
averageValue=AVE(a,b,c);
cout<<"averageValue:"<<averageValue<<endl;
averageValue=AVE(a,b+1,c+2);
cout<<"averageValue:"<<averageValue<<endl;
}



/* abc.cpp */
double AVE(double x,double y,double z)
{
return (x+y+z)/3;
}


两个cpp文件compile都成功,但build出现如下错误信息:
bc.obj : error LNK2005: "double __cdecl AVE(double,double,double)" (?AVE@@YANNNN@Z) already defined in main.obj
Debug/bx.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

不知是什么原因?
...全文
76 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
carylin 2004-10-18
  • 打赏
  • 举报
回复
^_^
sybase2000 2004-10-18
  • 打赏
  • 举报
回复
OK,多谢
carylin 2004-10-18
  • 打赏
  • 举报
回复
我知道了,VC6库里有个自带的AVE函数,产生冲突了,你把AVE函数名换个别的就ok了。
icymirror 2004-10-18
  • 打赏
  • 举报
回复
不清楚问题所在,我把你的代码复制之后,在我这边工作正常。
sybase2000 2004-10-18
  • 打赏
  • 举报
回复
两个文件都放在同个目录下,我用的是Visual C++ 6.0,会不会编译器有问题?
carylin 2004-10-18
  • 打赏
  • 举报
回复
不可能嘛,我的就是可以啊。难道你没把两个文件放在同个目录下?
sybase2000 2004-10-18
  • 打赏
  • 举报
回复
将#include<iomanip.h>改为#include<iostream.h>也没有用
carylin 2004-10-18
  • 打赏
  • 举报
回复
将#include<iomanip.h>改为
#include<iostream>
using namespace std;
后在Dev-C++下运行良好
sybase2000 2004-10-18
  • 打赏
  • 举报
回复
我的main.cpp中没有定义这个AVE函数,只是用include包含了abc.cpp这个文件,AVE函数在abc.cpp中定义,这样也是重复定义?应该怎么改正?
carylin 2004-10-18
  • 打赏
  • 举报
回复
将#include<iomanip.h>改为#include<iostream.h>
kobefly 2004-10-18
  • 打赏
  • 举报
回复
bc.obj : error LNK2005: "double __cdecl AVE(double,double,double)" (?AVE@@YANNNN@Z) already defined in main.obj
重复定义

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧