【问题标题】:Building and running a C++17/boost program on RHEL 6在 RHEL 6 上构建和运行 C++17/boost 程序
【发布时间】:2021-10-08 04:56:18
【问题描述】:

有一组 C++98 程序正在使用默认工具和 boost 1.6 版在 RHEL 6 上构建和运行。构建过程使用一组 makefile 和 shell 脚本并在特定帐户下运行。

我想在该过程中包含一个 C++17 程序,该程序使用 Developer's Toolset 8 中提供的较新工具和最新版本的 boost。

问题 #1:如何在不干扰使用默认工具的其他程序的情况下做到这一点。将它们转换为也使用新工具不是一种选择。

问题 #2:构建后,它也需要在 RHEL 6 下运行,但它会使用与其他程序不同版本的共享库(c++ 运行时、boost 等)。如何让它加载非默认的?

【问题讨论】:

    标签: boost shared-libraries libstdc++


    【解决方案1】:

    如何在不干扰使用默认工具的其他程序的情况下做到这一点。将它们转换为也使用新工具不是一种选择。

    您更改此程序的Makefile 以使用不同的编译器:

    CC = /path/to/new/gcc
    CXX = /path/to/new/g++
    ... etc.
    

    构建后,它也需要在 RHEL 6 下运行,但它会使用与其他程序不同版本的共享库(c++ 运行时、boost 等)。如何让它加载非默认的?

    您将新程序的-rpath 更改为指向备用共享库安装目录

    LDFLAGS = -Wl,-rpath=/path/to/alternate/installation/lib
    

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 2018-10-25
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 2020-12-12
      • 2017-01-23
      相关资源
      最近更新 更多