【问题标题】:Can I have a local C++ compiler different from the one in linux environment?我可以拥有一个不同于 linux 环境中的本地 C++ 编译器吗?
【发布时间】:2019-07-31 05:32:37
【问题描述】:

Linux 新手。 我的组织中有一台 linux 开发人员机器,它有一个旧的编译器。

gcc --version gives the following 
gcc (GCC) 4.4.7 ... 

我有一小段代码来自另一台使用大量 C++11 功能的机器。 显然,在我当前的 linux 机器中编译它会产生很多错误。

由于遗留问题,Linux 机器中的编译器升级完全不可能。

所以我有两个选择,

  1. 重写所有内容以适应 C++98 / 03 标准,或者
  2. 这是一个问题

我可以在本地目录中复制 gcc 编译器的更新版本并使用它来编译该文件夹中的代码吗?

它不应该影响我在这个文件夹之外的组织代码的编译,它使用 Linux 附带的旧 gcc 编译器。

除非有可能,否则我没有做太多研究。 基本上我不想触碰我的任何全局设置,以免破坏我的项目。

但我想在我的本地路径中有一个文件夹,并使用更新的编译器从另一台机器编译和测试我的代码。

【问题讨论】:

  • 是的,你可以在任何你想要的地方安装 GCC。安装说明应包含有关如何将其安装在非默认位置的文档。
  • 你可以毫不费力地安装clang
  • “显然”对谁? 4.4.7 是旧的,但不是那么旧。它于 2012 年问世。那时 C++11 支持已经基本到位。也许你没有启用它。
  • @n.m. 2012 年是 7 年前。 2012 年,YouTube 已经诞生了 7 年。 2012 年,Stack Overflow 4 岁,node.js 3 岁。
  • @n.m.根据this,我怀疑 4.4 会编译任何用实际 C++11 编写的东西。

标签: c++ linux


【解决方案1】:

是的。

对于 ARM 交叉编译,Raspberry Pi 和 Android 设备等 SBC 一直都是这样做的。 特定的基于 GCC 的工具链(例如 Lenaro)被解压到不同的文件夹中,例如 /opt 以在 X86 机器上交叉编译 ARM 软件。

您可以使用完整路径手动运行所需的二进制文件,或source 一个脚本来临时设置环境变量以使用构建自动化工具,例如make

我无法通过快速搜索为您找到易于使用的软件包,但您可以按照说明 here 构建一个,或者从 Ubuntu 等更新的发行版手动下载一个软件包,然后将其解压到任何目录你想要的。

【讨论】:

  • 感谢您的解决方案。 linux新手,找不到设置我自己的编译器版本的分步指南,但肯定会通过链接阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 2018-05-28
  • 2012-07-18
  • 2018-05-08
  • 2021-05-06
  • 2017-05-23
  • 1970-01-01
相关资源
最近更新 更多