c++ - g++4.4 c++98 目标文件是否与 g++4.8 c++11 兼容?

标签 c++ c++11 g++ c++98

我已经知道它是 unsafe天真地将 g++4.4 c++98 目标文件与 g++4.7 c++11 目标文件链接起来,但我在网上看到关于 g++4.8 的意见不一。虽然目标文件格式是相互兼容的,但 libstdc++ 不是,而且以不好的方式。

将 g++4.4 -std=gnu++98 目标文件与另一个使用 g++4.8 和 -std=c++11 或 -std=gnu++11 编译的目标文件盲目链接是否安全?如果是这样,为什么用 g++4.7 做同样的事情是不安全的?此外,这是否意味着带有 -std=c++11 的 g++4.7 与带有 -std=c++11 的 g++4.8 不兼容?

最佳答案

根据上一个问题的答案,答案是肯定的 g++ always backward-compatible with "older" static libraries?

基本上,答案是说您可以从 3.4 - 4.8(但不是 4.7.1)从 C++11 链接到 C++98。您只能将 C++11 链接到使用相同版本的 C++11。

关于c++ - g++4.4 c++98 目标文件是否与 g++4.8 c++11 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713479/

相关文章:

c++ - 为什么我的代码不起作用?

c++ - Visual Studio 的 gyp 和预编译 header

c++ - boost any_range 性能:std::prev(iterator) 与 --iterator

macos - CMake 项目使用本地 g++ 版本

c++ - 当 Visual Studio 运行正常时, vector 迭代器上的 LInux g++ 编译器错误

c++ - 枚举指针的丢失值

C++ 列表,获取列表中的元素数?

c++ - 从字符串 vector 初始化二维数组的最简单方法是什么?

C++ std::vector<T*> 如果你持有一个指向指针元素的指针,它会在调整大小时变得无效吗?

c++ - 误解全局运算符重载规则