gpt4 book ai didi

c - C程序中出现错误LNK2005

转载 作者:行者123 更新时间:2023-11-30 19:31:32 24 4
gpt4 key购买 nike

当我尝试运行该程序时,Visual Studio 显示错误 LNK2005LNK1169

我创建了两个源文件,并在主文件中使用#include。谁能告诉我为什么错了

这是我在 1.5.3.cpp 中的代码

#include "stdafx.h"
#include "Print.cpp"

int main()
{
double b;
printf("Input a number\n");
scanf_s("%lf\n", &b);
print(b);//call print()
return 0;
}

这是我在 Print.cpp 中的代码

#include "stdafx.h"

void print(double a)
{
double c = a * 2;
printf("%lf multyply by 2 is %lf", a, c);

}

enter image description here

最佳答案

这是你的问题:

#include "Print.cpp"

定义函数void print(double a)Print.cpp文件 1.5.3.cpp 文件。编译 1.5.3.cpp 文件时,它会在 1.5.3.obj 文件中生成符号 void print(double a)。同样,当编译Print.cpp文件时,它也会在Print.obj文件中产生一个符号void print(double a)。因此链接器错误:

LNK2005 "void __cdecl print(double)" (?print@@YAXN@Z) already defined in 1.5.3.obj LNK1169 one or more multiply defined symbols found

您需要在 Print.h 文件中声明 void print(double a)#include它位于 1.5.3.cppPrint.cpp 文件中。

您可能想查看: What is the difference between a definition and a declaration?

关于c - C程序中出现错误LNK2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com