c++ - 具有不匹配优化级别(-O3、-O2、-O1、-O0)的二进制文件是否会导致稳定性问题?

标签 c++ interop compiler-optimization abi

具有不匹配优化级别(-O3、-O2、-O1、-O0)的二进制文件是否会导致稳定性问题?例如,如果 app.exe 为 -O2,libapp.so 为 -O3,或者 app.o 为 -O2,libxyz.a 为 -O3?

最佳答案

一般来说,不匹配的优化级别不会导致稳定性问题。
理论上,一个写得特别糟糕的库可以根据实现定义的预处理器宏来更改其二进制接口(interface),该预处理器宏是基于优化级别定义的,在这种情况下可能会出现问题。
这在我的经验中并不常见。一个更常见的问题是 NDEBUG宏(和类似的)。

关于c++ - 具有不匹配优化级别(-O3、-O2、-O1、-O0)的二进制文件是否会导致稳定性问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64109351/

相关文章:

c++ - C++中具有虚拟继承的类大小

java - 为什么java编译器不重写这段代码?

c# - 编译器是否优化了重复的相同检查

c++ - 如何在 Qt 正则表达式中匹配连字符

c++ - c++中模板的实例化

c# - 在 C# 中使用 SetWindowPos 移动窗口

WPF - 是否必须处置 HwndSource?

c# - 在 C# 中为客户端和服务器使用 C++ COM 接口(interface)

java - Java如何优化函数调用和变量使用?

c++ - 无法将 Wifly 连接到 Arduino