我在Windows 8上运行Cygwin,尝试编译我想要mod的游戏的源代码。不幸的是,我在构建涉及fileno函数时遇到了一些错误。做了一些谷歌搜索似乎问题可能与c ++ 11支持有关(我不确定这意味着什么)。人们发现的大多数解决方案都涉及在编译时添加一些选项,如-std = c ++ 0x或-std = c ++ 11,但是我尝试将选项添加到makefile中的尝试都没有成功,而且我没有尝试过。我知道这是否会引起问题。我将包含抛出错误的代码片段以及指向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配置有问题吗?我在我正在构建的游戏的安装指南中安装了我被告知需要的软件包。答案 0 :(得分:9)
将生成文件中的-std=c***
更改为-std=gnu++0x
可以解决您的问题。
如果你不知道c++11
是什么,你最有可能不会使用它。
此外,如果您需要c++11
支持,您也可以:-std=gnu++11
代替-std=gnu++0x
答案 1 :(得分:0)
对于Windows ...
caseno = input('input your case no');
switch (caseno)
case 1
disp('this first section will run');
case 2
disp('this second section will run');
otherwise
disp('wrong case no');
end
已过时:https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/posix-fileno?view=vs-2017
使用fileno()
代替:https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fileno?view=vs-2017