gpt4 book ai didi

c++ - LNK2005、LNK1169 错误, "int __cdecl g(void)"(?g@@YAHXZ) 已定义

转载 作者:太空宇宙 更新时间:2023-11-04 15:05:30 24 4
gpt4 key购买 nike

我在 Visual Studio 项目中有 3 个文件:test.cppdate.cppmain.cpp -

测试.cpp:

int g() { return 0; }

日期.cpp:

/*totally empty*/

主要.cpp:

#include "test.cpp"
#include "date.cpp"

int main() { return g(); }

我知道如果多次调用头文件,在头文件中定义函数会导致违反单一定义规则。但是在这里,我只从一个文件/翻译单元调用它一次。为什么还是抛出LNK2005?

最佳答案

您不应包含 test.cppdate.cpp。相反,您应该编写 test.hdate.h,并将其包含在内:

测试.h

int g();

日期.h

// Contains prototypes for functions inside date.cpp

主要.cpp

#include "test.h"
#include "date.h"

int main() { return g(); }

关于c++ - LNK2005、LNK1169 错误, "int __cdecl g(void)"(?g@@YAHXZ) 已定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256046/

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