knight-6ren">
gpt4 book ai didi

c++ - “已在 .obj 中定义”错误,Visual Studio C++?

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:50 25 4
gpt4 key购买 nike

1>knightTour_Main.obj : error LNK2005: "int p" (?p@@3HA) already defined in Definitions.obj
1>knightTour_Main.obj : error LNK2005: "int q" (?q@@3HA) already defined in Definitions.obj

错误^

这是我在头文件中定义的代码:

#include<iostream>
using namespace std;
int p,q;

int f( int, int,const int [][8],const int [][8], int [],int []);

我试过了

extern int p,q;

但是之后我得到了这个错误

1>knightTour_Main.obj : error LNK2001: unresolved external symbol "int p" (?p@@3HA)
1>knightTour_Main.obj : error LNK2001: unresolved external symbol "int q" (?q@@3HA)

你还有什么推荐的吗?谢谢。

最佳答案

替换 int p,q;extern int p,q;是正确的,但您还需要包括 int p,q;在一个 .cpp 文件中

如果您在 header 中有一个定义 ( int p,q; ),那么您将获得一个 p 的拷贝和 q为包含该 header 的每个文件分配,并且它们发生冲突(“已定义”错误)。如果将其替换为声明 ( extern int p,q; ),则不会得到 pq分配到任何地方。

关于c++ - “已在 .obj 中定义”错误,Visual Studio C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287607/

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