【发布时间】:2015-06-23 21:18:21
【问题描述】:
我在 Windows 8 上运行 Cygwin,试图为我想要修改的游戏编译源代码。不幸的是,我在构建涉及 fileno 函数时遇到了一些错误。在进行了一些谷歌搜索之后,问题似乎与 c++11 支持有关(我不太确定这意味着什么)。人们发现的大多数解决方案都涉及在编译时添加一些选项,例如 -std=c++0x 或 -std=c++11,但是我尝试将选项添加到 makefile 中的尝试都没有成功,我不知道如果那是导致问题的原因。我将包含引发错误的代码 sn-p 和指向 makefile 的链接,因为它非常大。你能给我的任何建议都会很棒。
引发错误的代码:
time_t file_modtime(FILE *f)
{
struct stat filestat;
if (fstat(fileno(f), &filestat))
return 0;
return filestat.st_mtime;
}
它被托管在 github 上
编辑:在得到一些建议后,我浏览了 makefile 并发现了五个使用 -std 选项的实例,使用它们并没有改变任何东西。我的 Cygwin 配置有问题吗?我安装了我正在构建的游戏的安装指南中告知我需要的软件包。
【问题讨论】:
-
你有
#include <cstdio>吗? -
是的
包括 -
我在发布之前查看了那个,并尝试添加它建议的选项,但没有成功。我希望就如何解决它或该选项需要在 makefile 中的哪个位置提供一些建议。
-
您是否尝试将标准设置为 -std=gnu++0x ?