【发布时间】:2021-11-10 17:25:35
【问题描述】:
我有一个使用 boost 1.77.0 库的 c++ 项目。编译器是 g++ 4.8.5,据我所知,它支持 c++11 标准。以下命令用于编译项目:
g++ -std=c++11 main.cpp Logger.cpp MOCMesh.cpp Mesh.cpp CFDMesh.cpp Solver.cpp -o main -I../tools -I/usr/code/include -I. -L/usr/code/lib -lgmp -lphtread -lmpfr
但是,我收到错误提示 c++ 标准不满足:
/usr/code/include/boost/multiprecision/detail/number_base.hpp:36:2: error: #error "This library now requires a C++11 or later compiler - this message was generated as a result of BOOST_NO_CXX11_HDR_TYPE_TRAITS being set"
#error "This library now requires a C++11 or later compiler - this message was generated as a result of BOOST_NO_CXX11_HDR_TYPE_TRAITS being set"
...
由于某些原因,我无法将 GNU 编译器更新到最新或更高版本,那么有谁知道如何解决这个问题?
【问题讨论】:
-
IIRC,GCC 4.9 是第一个完全支持 C++11 的版本。可以使用不需要 C++11 的旧版本的 boost 库吗?
-
即使是 4.9 也是古老的。如果可以的话,你真的应该升级 GCC。现在是第 11 版,正在开发第 12 版。
-
为什么不能升级到更高的版本?
-
GCC 4.8.0 于 2013 年 3 月发布,点点版本 GCC 4.8.5 于 2015 年 6 月发布。该时间范围的 Boost 版本是 1.54 到 1.57。如果 1.77 已经超越 GCC 4.8.5 的支持,这不足为奇。