c++eclipse奇数编译器错误消息

c++ eclipse odd compiler error messages

本文关键字:错误 消息 编译器 c++eclipse      更新时间:2023-10-16

我的代码中出现了非常奇怪的错误。在声明函数的行中,它表示字符串不是std的一部分,并且"变量"SDL_Texture-loadImage"具有初始值设定项,但类型不完整"。在那之后的电话中,它说它预计会有一个;在大括号之前。同样的代码片段在一分钟前就开始工作了。我能做些什么来修复它?如果你需要更多的信息,我很乐意提供。此外,我在Linux上运行,所以这可能也会有所不同。

#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include "LevelRenderer.h"
#include "err_log.h"
SDL_Texture loadImage(std::string path)
{
    return loadTexture(getResourcePath() + path + ".png", getLevelScreen());
}

这意味着您没有包含定义SDL_Texture的标头;只有一个声明它。这使得它不完整,并且你只能用它做有限的事情。特别是,你不能创建它的实例,就像这个函数按值返回时所做的那样。

根据我的谷歌技能,你需要包括<SDL_sysrender.h>

您还应该包括<string>,因为您使用的是std::string。这可能是第二个错误的原因;但是,即使其他标头中有一个恰好为您包含了它,也最好不要依赖它。

两个问题。

第一,你忘了#include <string>

第二,loadTexture返回一个指针,所以你想要

SDL_Texture* loadImage(std::string path)
{
    return loadTexture(getResourcePath() + path + ".png", getLevelScreen());
}