2010-07-09 191 views
18

我有权访问公共库中的计算机,我想尝试一些C++或其他代码。问题是没有安装g ++,我无法使用软件包进行安装,因为我没有root权限。是否有一种“智能”的方式为家庭文件夹中的编程提供完整的环境?在没有root权限的Linux上安装gcc

我已经安装了gcc(我可以编译C代码)。另外,我有一个始终一致的主文件夹。我不知道在哪里可以找到预编译的g ++,我只找到源代码,但我不知道该怎么做。我试图让他们安装这个,但它没有工作:)

+0

库是否安装了gcc? – Omnifarious 2010-07-09 11:27:54

+0

我可以使用gcc编译C源代码。 – 2010-07-09 13:41:36

回答

8

您可以使用--prefix参数运行配置脚本:../gcc-4.5.0/configure --prefix=/home/foo/bar。由于C++标准库很可能与系统上的不同,因此必须先设置export LD_LIBRARY_PATH=/home/foo/bar/lib,然后才能启动此编译器编译的程序。

+2

这取决于是否有一个现有的编译器工具链来引导。 – reece 2010-07-09 11:39:30

+1

和头文件。 – Omnifarious 2010-07-09 11:42:20

+0

我试过./configure --prefix = ...但它给了我: configure:error:在“。”中找不到install-sh,install.sh或shtool。 “./ ..”“./../ ..” – 2010-07-09 11:44:08

1

曾经很久以前(1992年左右),当我购买没有开发环境的SCO系统时,我经历了类似的事情。引导它拥有一个完整的开发环境是一个巨大的痛苦,并不容易。在系统上安装库头文件或gcc可以让你的工作变得更加简单。

这很大程度上取决于图书馆对于安装什么类型的东西有多么讨厌。如果那里没有gcc,那么你的工作会变得更加困难。如果没有glibc的头文件,那么你的工作很难。

另外,你有没有在系统上的帐户,所以你有一个从登录到登录一致的主文件夹?

如果您没有gcc,那么您需要找到预编译的gcc/g ++二进制文件并将其安装到某处。如果你没有头文件,你需要找到这些文件的副本并将它们放到系统中。

虽然没有在您的个人文件夹中安装gcc的“标准”方法。所有的解决方案都会涉及一些手动滚动方式。

您是否问过图书管理员是否可以更改已安装的内容,因为您想了解一些编程知识并且只能访问他们的计算机来执行此操作?这可能是最简单的解决方案。

从你的评论看来,你确实有gcc,如果你可以编译C代码,你有库头文件。所以现在就需要编写自己的g++版本。您可能会找到一种方法来诱使系统上的软件包管理器在除系统文件夹以外的其他位置安装二进制软件包。我认为这个解决方案比编译自己的解决方案更有趣,我想也可能存在一些可能的微妙问题,因为安装的软件包可能希望在特定位置找到某些东西,而不是在那里找到它们。

首先要做的是确保你已经下载了gcc包的正确源代码。找到的地方是GNU United States mirror page。您想在您选择的镜像网站上找到gcc-4.5.0.tar.bz2gcc-4.5.0.tar.gz文件。它可能位于gcc目录和gcc-4.5.0子文件夹中。

下载完成后,您应该解压缩它。一般来说,你不应该在你解压到的文件夹中建立gcc。因此,创建另一个兄弟文件夹,您实际上想要在标有gcc-build的位置创建它。然后你想要的命令是../gcc-4.5.0/configure --prefix=$HOME/.local --enable-languages='c c++'

gcc确实需要安装一些其他软件包以便能够自行编译。您可以对这些软件包使用相同的--prefix行将它们安装在相同的位置。 gcc网站有list of pre-requisite packages

$HOME/.local是每个用户安装东西的标准接受位置。

+0

我已经安装了gcc(我可以编译C代码)。另外,我有一个始终一致的主文件夹。我不知道在哪里可以找到预编译的g ++,我只找到源代码,但我不知道该怎么做。我试图让他们安装这个,但它没有工作:) – 2010-07-09 11:42:32

+0

@ user287655 - 我会将这个评论添加到您的问题,以进一步澄清它。 – Omnifarious 2010-07-09 11:58:09

+0

但不要尝试构建新版本的GCC。根据https://gcc.gnu.org/install/prerequisites.html GCC需要一个C++ 98编译器,除非你在4.8之前构建GCC,允许使用C89编译器进行引导 – 2016-10-18 23:44:13

0

如果你有fakeroot,你可以使用它来设置〜/ some-path作为root来安装包。另外,你可以设置一个chroot环境来做同样的事情。

鉴于此,您可以使用dpkg -i package.deb在您的系统上安装gcc软件包。您将需要单独下载和安装每个软件包(例如,从debian网站) - 至少binutils,glibc,linux-headersgcc

如果您在另一个系统上,则需要为该系统获取正确的软件包并使用相应的软件包管理器进行安装。

7

如果你想安装它作为一个本地用户

GNU GSRC提供了一种简单的方法来做到这一点

链接:http://www.gnu.org/software/gsrc/

配置后,只需指定下列命令:

cd gsrc 
make -C pkg/gnu/gcc 
make -C pkg/gnu/gcc install 

第二步也可以更改为加速N核系统:

make -C pkg/gnu/gcc MAKE_ARGS_PARALLEL="-jN" 
+1

我建议使用稳定版本(比如2013.07 )而不是主干,请从以下网址下载:http://ftp.gnu.org/gnu/gsrc/ – canesin 2014-02-21 13:25:52

+0

这也会安装新版本的标准lib C++吗? – 2014-09-15 12:20:47

相关问题