技术解析
环境:CentOS 7.4, 安装了"Development Tools"组
GCC 从 4.8.5 升级到 4.9.4
]# gcc -v
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.4/lto-wrapper
目标:x86_64-unknown-linux-gnu
配置为:./configure --enable-bootstrap --enable-checking=release --enable-languages=c,c++,objc,obj-c++,java --disable-multilib
线程模型:posix
gcc 版本 4.9.4 (GCC)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/maridata/data -DMYSQL_USER=mariadb
报错:
-- Performing Test HAVE_STDCXX11
-- Performing Test HAVE_STDCXX11 - Failed
-- Performing Test HAVE_STDCXX0X
-- Performing Test HAVE_STDCXX0X - Failed
CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:183 (message):
/usr/bin/c++ doesn't support -std=c++11 or -std=c++0x, you need one that
does.
Call Stack (most recent call first):
storage/tokudb/PerconaFT/CMakeLists.txt:53 (include)
以上错误在使用 4.8.5 版本的 GCC 也是同样出现,google 上找到说 4.8.5 的 c++11 特性与 MariaDB-10 使用的有差别,要升级到 4.9 以上,但升级后问题依旧,不是很懂 GCC,找了好久也没找到解决方案,请大大看看什么问题,谢谢!