CentOS本身不再维护

因为不再维护,部分镜像源仓库(清华源) 开始停止服务。

目前遇到的问题是,当尝试编译程序时,需要的依赖无法下载,并且后续处理只能通过换源的方案,如果没有稳定的源,应该逐渐放弃使用CentOS

基于CentOS编译出的C++库,可能存在兼容性的问题

具体来说,这个是GCC的stdc++实现原因,在GCC 5.1 中,std::string std::list有新实现,并且ABI与之前(常见于 GCC 4.8)的不兼容。

CentOS默认的GCC就是低版本的

如果需要链接的lib是基于5.1之前的GCC编译,并且自己的GCC>=5.1,就会出现这个问题,有几个解决方案:

  1. 编译的时候,加上 -D_GLIBCXX_USE_CXX11_ABI=0,这时会用旧的ABI来进行编译项目
  2. 降级GCC到4.8,并且打上升级补丁,以支持高版本C++ 14 17特性