linux - 我怎样才能获得更新的 GCC?我没有root,无法编译(内存错误)

标签 linux gcc build

我在一台运行旧版 GCC 的机器上有一个共享帐户。我没有根。当我尝试编译 GCC 时,由于以下命令的内存使用,我的构建进程被终止:

build/genattrtab ../../../work/gcc-6.1.0/gcc/common.md ../../../work/gcc-6.1.0/gcc/config/i386/i386.md insn-conditions.md \
    -Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c

我真的很想能够在这台机器上编译一些需要较新 GCC 的软件。任何建议表示赞赏。

最佳答案

您可以手动解压任何主要发行版的 GCC 包之一,尝试使用与您的发行版最匹配的包。这些可安装包只是带有一些元数据和安装脚本的 tar 文件。您可以解压它们并提取您需要的二进制文件。请记住,您可能需要的不仅仅是 gcc 包。一些发行版将他们的开发工具分成大量的小包(gcc、g++、binutils、gdb)

另一个好的来源是使用嵌入式供应商使用的预构建 gcc 工具链,有时这些供应商包括 gcc 的主机版本和交叉编译器。例如,Android NDK 就是其中一种发行版。

最后,您可以在另一台不受限制的机器上编译 GCC,并将生成的二进制文件复制到受限制的机器上。与解压可安装包的第一种方法一样,尝试找到与您的限制机器尽可能接近的机器。您可以使用 vagrant 和 docker 等工具来设置目标机器的紧密副本。 Vagrant 和 docker 有很多预构建的模板,您可以使用它们作为快速入门来创建您需要的机器。

关于linux - 我怎样才能获得更新的 GCC?我没有root,无法编译(内存错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37501388/

相关文章:

linux - 与 Linux 中的 Foreach 和 doMC 包并行 - mclapply 出错

linux - 查找文件并将它们 tar(带空格)

c - 你如何在原子编辑器中编译一个c程序

gcc - 覆盖 GCC 编译标志

linux - 如何为 imx6 处理器构建 Qt 应用程序?

docker - 来自 Docker 的 Golang 编译缓存

linux - rundeck - 在作业脚本中切换到 root 用户

c++ - Netbeans 8.1(用于 C/C++)找不到我的编译器(gcc-6.0.0 开发版)

javascript - 如何修复,ENOENT 错误 : no such file or directory when the "fonts" task mentioned below in the gulpfile. js 启动

linux - .NET Core 最佳 Linux 服务器发行版