gpt4 book ai didi

c++ - 多个定义和 undefined reference

转载 作者:行者123 更新时间:2023-11-28 05:31:43 25 4
gpt4 key购买 nike

我的 C++ 代码在编译时出现许多“多重定义”错误。我的情况的一个最小例子是:

//testA.h
#ifndef __FILEA_H_INCLUDED__
#define __FILEA_H_INCLUDED__

int A;
int B;

#endif

//testB.h
#ifndef __FILEB_H_INCLUDED__
#define __FILEB_H_INCLUDED__

int C;
int D;

#endif

//testA.cpp
#include "testA.h"

//testB.cpp
#include <iostream>
#include "testA.h"
#include "testB.h"

int main() {
std::cout << C << std::endl;
}

在变量声明前添加“extern”解决了这些“多重定义”错误,但引入了“ undefined reference ”错误。我已经尝试了我能想到的一切来解决这个问题 - 但显然我做错了什么。

如果您想知道,在我的实际应用程序中,我需要将变量视为全局变量。

最佳答案

您应该在.h 文件中声明全局变量,并在.cpp 文件中定义它们。

In testA.h

extern int A;

In testA.cpp

int A;

关于c++ - 多个定义和 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39366493/

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