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