GCC问题,在2个不同(但类似)的系统上生成不同的输出

GCC问题,在2个不同(但类似)的系统上生成不同的输出,gcc,gcc4,Gcc,Gcc4,我正在我的一个项目中使用EAX加密库 问题是代码在我的本地开发环境(在virtualbox下运行的Ubuntu)上工作,但在Amazon AWS云上运行的系统上,相同的代码不工作(加密不正确) 我已经检查了GCC版本以及我的本地环境和云计算环境。版本相同: gcc版本4.4.5(Ubuntu/Linaro 4.4.4-14ubuntu5) 在什么情况下会发生这种情况?有什么想法吗?可能有很多原因。不仅仅是编译器,还可能是: 正在使用的C库的版本 加密库部分的未定义行为(甚至bug) 可影响编译

我正在我的一个项目中使用EAX加密库

问题是代码在我的本地开发环境(在virtualbox下运行的Ubuntu)上工作,但在Amazon AWS云上运行的系统上,相同的代码不工作(加密不正确)

我已经检查了GCC版本以及我的本地环境和云计算环境。版本相同:

gcc版本4.4.5(Ubuntu/Linaro 4.4.4-14ubuntu5)


在什么情况下会发生这种情况?有什么想法吗?

可能有很多原因。不仅仅是编译器,还可能是:

  • 正在使用的C库的版本
  • 加密库部分的未定义行为(甚至bug)
  • 可影响编译/链接过程的环境变量设置,如
    PATH
    LIBPATH
我不会把它列为一个详尽的清单。可能性的数量实际上相当大

您可能必须在目标环境中调试它,才能确切了解它为什么不能按预期运行