这让我对计算机和操作系统的理解让我感到非常不安.我花了大约一个小时进入编译命令的不同迭代,g++并且在我恼怒的情况下,我重命名了可执行文件,它一直延迟到game.exe,gameg.exe并且突然之间问题消失了.
这里有更多背景知识:我最近注意到,当我运行Eclipse单元测试版本时,当我开始启用SDL测试时,它将打开SDL窗口并冻结大约20秒,然后才能开始测试.在后续测试中(SDL_Quit()作为测试过程的一部分调用并重新初始化SDL),此延迟不存在.现在我确定只有当可执行文件被命名为"game.exe"才会发生这种情况!我将它重命名为任何其他文件名,它会愉快地运行测试,在一秒钟内像通常那样初始化SDL系统.之前我曾假设必然会有某种错误导致我的Eclipse构建产生这种行为,这在makefile构建中并不存在,但事实证明,如果我采用eclipse构建并重命名其可执行文件(项目文件夹)它被称为game因此game.exe它没有表现出行为.
同样,我接受我的makefile构建(其文件名为entropy_unittest_disp.exefyi)并将其重命名为,game.exe并开始执行此操作.我重命名它game,它也做到了(我从mingw的bash运行..当没有.exe扩展时,资源管理器不知道它是可执行文件).但是我把它改成了它game.exx并且它正常工作.
什么是黑魔法?为什么程序的功能会根据文件名的不同而不同?我查询argv [0],我实际上是打印到控制它的值(出于调试目的)但不出所料它只是打印程序及其路径.我的程序中没有逻辑执行.
我试图运行GDB以找出冻结的位置但是一旦我按下Ctrl + C GDB就会退出.
有没有人知道这可能是由什么引起的?病毒?
编辑:我从这个网站下载了这个演示:http://www.sdltutorials.com/sdl-opengl-tutorial-basics/
提取它,将文件重命名为game.exe,并且是的,同样的事情发生了.这是什么?我将尝试在旁边运行依赖性walker,看看是否有东西试图挂钩.
pla*_*her 11
我假设您有官方驱动程序的AMD(ATI)或Nvidia显卡.
有可能,game.exe是发布的实际游戏的可执行名称,并且您的驱动程序正在为"游戏"运行特殊优化或为此游戏加载Crossfire或SLI配置文件.一个快速的谷歌搜索似乎告诉我,生化危机4调用他们的可执行文件"game.exe".
我建议您查看此链接以获取有关可能发生的情况的更多详细信息:
http://www.kn00tcn.net/site/ati-catalyst-profiles/