gpt4 book ai didi

c++ - C++ 和 DirectX 文件中的链接错误包括问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:51 26 4
gpt4 key购买 nike

我有两个头文件:

DirectX_Engine.h

#pragma once
#include "Main.h"
#include <d3d9.h>

和:

Main.h

#pragma once
#include <Windows.h>
#include "DirectX_Engine.h"

int imRunning = 1;

编译后,出现以下链接器错误:

error LNK1169: one or more multiply defined symbols found
error LNK2005: "int imRunning" (?imRunning@@3HA) already defined in DirectX_Engine.obj

#includeing "d3dx9.h"时,我也收到“找不到文件或目录不存在错误”。有什么想法吗?

最佳答案

两个想法。首先,您在 Main.h 中包含了 DirectX_Engine.h,在 DirectX_Engine.h 中包含了 Main.h。这显然行不通。

其次,int imRunning 被包含到每个包含 Main.h 的 .cpp 文件中,编译器将其视为定义。然后链接器看到在每个文件中都定义了 imRunning 并且不知道该怎么做。解决方案是使用外部:

Main.h 中:

extern int imRunning;

其中一个.cpp 文件中:

int imRunning = 1;

关于c++ - C++ 和 DirectX 文件中的链接错误包括问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480864/

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