linux下gcc 4.8.5和7.5并存

  有些软件依赖于c++ 14甚至c++ 17的特性,比如libpqxx 6.4.8版本就需要4.9以上版本,4.8.5不可以,会下列错误,

  invalid initialization of non-const reference of type ‘pqxx::connection_base&’ from an rvalue of type ‘<brace-enclosed initializer list>’    m_open{C.is_open()}

  参见https://github.com/jtv/libpqxx/issues/336,而生产软件可能是基于c11或c++11的,只需要4.8即可,为了保证稳定,所以主要还是以4.8为主,三方库则根据新版本编译。但是这不影响使用,我们在c++11主程序中动态链接c++ 14的libpqxx。

  7.3源码安装可以参见:https://www.jianshu.com/p/ca30d2b61fdc。

  rhel提供了devtoolset7可以通过沙箱环境提供单独的gcc 7.3环境,scl enable devtoolset-7 bash参见https://support.huawei.com/enterprise/zh/knowledge/KB1100063847/?idAbsPath=23710424|251364417|9856629。https://zhuanlan.zhihu.com/p/535657060?utm_id=0.

posted @ 2023-12-27 22:16  zhjh256  阅读(25)  评论(0编辑  收藏  举报