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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章