各linux系统gcc g++版本下编译及运行问题记录
项目在centos下编译的,换到ubuntu中调试,并在suse上发布,遇到的问题做个记录。
gcc g++多版本共存与切换
由于centos中调试太困难,转移到ubuntu中调试,编译时报错cv::imread(std::__cxx11::basic_string<char, std::char_traits, std::all。查了下发现可能是gcc和g++版本不一致对中std::string的定义不同造成的。
centos 7 使用的gcc是4.8.5,ubuntu中的是5.4,在ubuntu中安装4.9版本的gcc g++
// 查看版本
gcc -v
// 查看是否已安装gcc4.9
ls /usr/bin/gcc*
// 安装gcc g++ 4.9
sudo apt-get install gcc-4.9 gcc-4.9-multilib g++-4.9 g++-4.9-multilib
// 输入指令update-alternatives
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
// 设置使用的版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
// 输入命令后输入选择的版本,设置完毕后,gcc -v看是否成功