图像渲染器.h
#pragma once
#ifndef _IMAGE_RENDERER_H_
#define _IMAGE_RENDERER_H_
#include "mainUtils.h"
struct lTexture
{
u32 id;
const char* name;
SDL_Texture* sdl_tx;
};
std::vector<lTexture> vvLoadedTextures;
void draw_background(SDL_Renderer *renderer, int w, int h);
bool draw_image(const char* t, int w, int h, SDL_Window* window, SDL_Renderer* renderer);
#endif
核心.cpp
#include "ImageRenderer.h"
int main(int argc, const char *argv[])
{
// code...
for (int i = 0; i < vvLoadedTextures.size(); i++)
{
SDL_DestroyTexture(vvLoadedTextures[i].sdl_tx);
}
// another code
return 0;
}
在链接过程中,我收到一条错误消息,提示“LNK2005:vvLoadedTextures 已在 Core.obj 中定义”,我到处查看,没有找到可以重新声明的地方。
我在哪里做错了?
您
vvLoadedTextures在头文件中定义了它,但它不是inline.写
inline std::vector<lTexture> vvLoadedTextures;