【发布时间】:2018-09-08 04:26:37
【问题描述】:
我想知道为什么 c++ 代码在不同版本的操作系统上编译不同。例如,在操作系统上编译相同的代码时,不会出现警告或任何东西,但是当在不同的操作系统上编译相同的代码时,就会出现警告或错误。
那么为什么会发生这种情况。 gcc 版本之间的区别是什么,或者当 c++ 代码在两个不同的操作系统(如 Ubuntu 14 和 Ubuntu 16)上编译时,它实际上是什么使 c++ 代码独一无二。我只是想了解 c++ 代码对操作系统编译的独特之处。
【问题讨论】:
-
我们能看到产生这种行为的代码吗?如果您有良好的符合标准的代码,它应该可以在所有平台上编译。
-
编译器会警告您他们认为可能是错误的代码。它们不一定是错误。它们是特定于编译器的并且不断发展。如果编译器版本不同,如果他们对哪些代码结构可能错误的评估不同,我不会感到惊讶。
-
如果您的代码包含未定义的行为(或其他错误),那么任何事情都可能发生。但是如果不看代码示例就无法判断。
标签: c++ ubuntu compilation operating-system