【发布时间】:2014-09-08 21:04:46
【问题描述】:
在没有 root (sudo) 访问权限的 linux web 服务器上安装 c++11 兼容编译器的最简单途径是什么?当前的 gcc 版本是g++ (GCC) 4.4.7 20120313。我已经试过了:
- 从头开始构建现代 gcc 版本(例如https://gcc.gnu.org/wiki/InstallingGCC)。这在
make期间不可避免地会失败,并出现如下错误:
cp: cannot stat `libgcc_s.so.1': No such file or directory"
- 从头开始构建现代 clang/llvm。这似乎可以正确编译,并且二进制文件可以编译非常简单的程序。但无法编译使用许多 stdlib 类或例程的程序。
是否有一种防弹(或傻瓜-证明)的方法来从头构建一个工作编译器?
或者,更好的是,有没有办法安装编译器二进制文件和标准库而无需 root 访问权限?
【问题讨论】:
-
哪个 Linux 发行版?
-
在不需要root权限的地方安装gcc。
-
你可以在你的用户空间中创建一个 chroot 环境。或者只是确保在编译时正确设置了 LD_LIBRARY_PATH 和动态链接器。
-
看来你编译
clang很好,但你缺少一个 c++11 标准库来链接。所以下载一个,然后编译和安装它。然后重新编译clang配置为默认使用c++11标准库。