问题描述
||
有了搜索,我觉得这种事情已经被问过很多次了。但是,我找不到答案,所以去了:
我的设置:
代码块,GCC C ++和SDL
我目前正在阅读LazyFoo的SDL教程,并且遇到此错误:
错误:\':\'标记之前的预期\')\'
从此代码:
SDL_Surface * load_image(std :: string myfile)
在这种情况下
#include \“ SDL / SDL.h \”
#include
const int SCREEN_WIDTH = 425;
const int SCREEN_HEIGHT = 550;
const int SCREEN_BPP = 32;
SDL_Surface *消息= NULL;
SDL_Surface *背景= NULL;
SDL_Surface *屏幕= NULL;
SDL_Surface * load_image(std :: string myfile)
{
更多的东西和程序的其余部分等
}
我觉得这可能与在CodeBlocks中设置字符串或SDL库的方式有关。有什么建议或我错过的解决方案的明显链接吗?
解决方法
如果要使用C ++ STL字符串库,请包含
<string>
而不是< string.h >
。
,您应该在标题中使用string
而不是string.h
。
,我也在以下位置关注该教程:http://lazyfoo.net/SDL_tutorials/lesson02/index.php
并得到消息:
第3行,错误:字符串:没有这样的文件或目录
第15行,错误:令牌\':\'之前的预期\')\'
我想我找到了问题的原因。
当选择“文件/新建/空文件”时,默认文件扩展名为Untitled1.c,我将文件扩展名更改为.cpp,并使代码块识别#include,现在该应用程序可以工作了。
,听起来像是C错误;您应该使用g++
而不是gcc
进行编译。
,我想到了。我有同样的问题,但我能解决。这正是我所做的。首先下载本教程结尾处lazy foo提供的源文件。我尝试了它们,但收到错误消息,指出在计算机上找不到SDL.dll。我将SDL.dll文件从应该在其中正常运行的项目的文件夹移到了C:/ windows / system32。
接下来,我再次尝试了该程序,该软件是本教程随附的,窗口闪烁但没有任何显示,我将两个bpm文件复制到了项目中,并且可以正常工作。
绝对文件必须为.cpp,所以我会这样说。
等等。现在,我确定我在第2课的尝试没有错误,我输入的内容完全与看到的相同。但是,这就是问题所在。
loadingImage = SDL_LoadBMP(filename.c_str()); <__他展示的位置以及他使用的字体,看起来更像是loadedImage = SDL_LoadBMP(filename.c_str0);
只是看一下...确实如此,在他键入()的地方看起来像是0,而您真的必须知道。
因此,任何有此问题的人,以及您得到的其他任何建议,我建议您检查代码中可能已经读过并输入为0的棘手()。