截至去年9月,我一直在使用基于英特尔i7的笔记本电脑来创建和编译我的程序,但不幸的是显卡坏了,因此我构建了一台基于AMD 4100 FX处理器的预算计算机。
自从我开始使用桌面进行编译以来,我遇到了各种各样的问题,主要问题是我的应用程序在英特尔平台上确实不稳定。
这个问题的最新版本是我的C ++代码中的某个功能被破坏,似乎是由于在AMD CPU上进行编译而引起的。 为了测试这一点,我很快掌握了AWS(亚马逊网络服务)EC2 micro.t2服务器,从Dreamspark安装了Visual Studio 2008,下载了源代码并进行了编译。 果然,没有腐败的功能和源代码生成的DLL完美运行。
我正在使用Visual Studio 2008,使用股票编译器,并运行Windows 8.1(AWS EC2服务器运行Windows Server 2008 R2)。 我尝试编译的代码示例是Crysis Wars SDK,请记住,此代码总是在我的Intel i7 CPU上正常编译。
为什么我的AMD CPU在编译C ++应用程序时遇到这么多麻烦? 除了继续在AWS EC2服务器上编译我的应用程序,或者在基于英特尔的新PC构建上花钱,我能做些什么吗?
答案 0 :(得分:4)
您的处理器或内存可能过热或不足。现代编译器是复杂的野兽,如果你运行一个,它可能是你在计算机上运行的所有程序中最复杂的。因此,编译器可能是唯一显示硬件问题的程序。
GCC FAQ中有一个条目,如果编译器发生段错误,it可能是你的内存有问题,而不是GCC中的错误。当我超频Pentium(那是90年代)时,我受到了这个影响,甚至memtest都没有诊断出任何错误(但GCC确实如此)。生成错误代码似乎是硬件坏的另一个可能后果。
你应该怎么做?检查您是否在组件和散热器之间留下了贴纸,更换内存以确认或排除它们与问题相关,如果您可以确认问题,请获得保修。祝你好运。
答案 1 :(得分:0)
真正的问题是AMD CPU;当我换电脑时,问题就消失了。去年我使用(另一种)FX4100处理器构建了另一台计算机,我又遇到了同样的问题。
这是FX4100特有的问题,也可能是AMD的所有FX' FX'处理器系列。
我现在正在使用Xeon并且从那时起就没有看过这个问题。