_Longlong未在此范围内声明

kev*_*n29 2 c++ sdl-2

我正在lazyfoo.net上浏览SDL 2教程的教程33(源代码可在页面底部的http://lazyfoo.net/tutorials/SDL/33_file_reading_and_writing/index.php上找到),编译器错误“在此范围内未声明_Longlong”。我正在Codeblocks 16.01中使用g ++版本5.3。我该怎么做才能解决此构建错误?

osg*_*sgx 5

这就像示例中的错误(不可移植的编码)一样,正如jungletek在2015年在https://forums.libsdl.org/viewtopic.php?p=42648中所报告的:

我在关于同一问题的新主题中发布了此文章,令人遗憾的是人们从来没有在互联网上跟进他们的解决方案...

Quote:我相信这是MinGW错误(将MinGL更新到较新版本)以及带有Lazy Foo代码的错误/错误(?)的组合。

将所有'_Longlong'实例更改为'long long'会导致代码正确编译,并且据我所知,可执行文件似乎按预期执行。如果有人可以让我知道这在某种程度上是不正确的解决方案,那么我很想听听,因为我仍在学习中。

还要确保使用正确的编译器标志为c ++ 11标准进行编译。

所以,你可以尝试添加符合的类型定义(_Longlong第一次使用前)_Longlonglong long(两者都是在许多平台上的64个整数):

 typedef long long _Longlong;
Run Code Online (Sandbox Code Playgroud)

而且_Longlong声音听起来太像来自华盛顿州雷德蒙德的沙漠,那不是gcc编译器的主要目标。