c ++ eclipse奇怪的编译错误消息

时间:2014-09-10 13:47:37

标签: c++ eclipse

我的代码中出现了非常奇怪的错误。在声明函数的行上,它表示字符串不是std的一部分,并且'variable'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());
}

2 个答案:

答案 0 :(得分:2)

这意味着您还没有包含定义SDL_Texture的标头;只有一个声明它。这使得它不完整,你只能做有限的事情。特别是,您无法创建它的实例,因为此函数在按值返回时会执行。

根据我的google skills,您需要加入<SDL_sysrender.h>

您还应该包含<string>,因为您正在使用std::string。这可能是第二个错误的原因;但即使其中一个标题恰好包含在你手中,最好不要依赖它。

答案 1 :(得分:1)

两个问题。

一,你忘了#include <string>

两个,loadTexture返回一个指针,所以你需要

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