cmake: undefined reference to std::__cxx11::basic_string

系统centos7原版本的gcc版本是4.x,很老,通过这个Centos yum 安装 gcc7、gcc8、gcc9 安装gcc 9版本后,使用cmake进行编译会报如题错误。虽然在shell中 显示 gcc -v 是 9.x,但是仍然报错。

解决办法:在cmake 命令中加入以下参数

	    -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/g++\
        -DCMAKE_CXX_COMPILER_AR=/opt/rh/devtoolset-9/root/usr/bin/gcc-ar \
        -DCMAKE_CXX_COMPILER_RANLIB=/opt/rh/devtoolset-9/root/usr/bin/gcc-ranlib \
        -DCMAKE_C_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/gcc \
        -DCMAKE_C_COMPILER_AR=/opt/rh/devtoolset-9/root/usr/bin/gcc-ar \
        -DCMAKE_C_COMPILER_RANLIB=/opt/rh/devtoolset-9/root/usr/bin/gcc-ranlib \

当然这样只能编译通过,实际执行还是会报错,因为实际执行的环境还是原来的环境

你可能感兴趣的:(linux)