我是Linux(CentOS 6.6)服务器的非管理员用户。我通过Windows计算机上的终端程序登录。我的问题是IT对我来说升级GCC / gfortran感觉不舒服所以我想从我的个人文件夹中运行它。他们声称最新的yum(这个操作系统版本的devtoolset-3)将降级他们拥有的其他一些功能。不管怎样,它不是GCC的最新版本。
我已经从gfortran.com下载了最新的GCC 5.3二进制文件和先决条件,几乎可以编译我的测试代码。实际上,当我执行以下操作时,它将使用-c进行编译但不会链接。该文件夹是我放置先决条件的地方,我也将/ usr / lib64目录中的东西复制到那里。
LD_LIBRARY_PATH=/users/home/me/me/gcc53mark/my_lib
export LD_LIBRARY_PATH
./gfortran test.f90
错误消息如下: collect2:致命错误:找不到'ld'
但是ld确实存在
-bash-4.1$ whereis ld
ld: /usr/bin/ld /usr/share/man/man1/ld.1.gz
答案 0 :(得分:2)
经过多方努力,我已回答了自己的问题!要以非管理员身份将GCC安装到我自己的个人Linux帐户,我最终必须编译GCC而不使用我最初下载的二进制文件。我的朋友是make install,知道一切都需要去哪里,我没有二进制文件。
关键是使用随身携带的方法(-prefix)提供的以下命令安装到我的用户根目录/ GCC:
../gcc-5.3.0/configure --prefix$HOME/gcc-5.3.0 --enable-languages=c,c++,fortran --disable-multilib
对我来说,我必须禁用multilib,因为我猜我的系统只有64位库(我认为这导致了我原来的问题)。
在我达到这一点之前,我还必须手动下载先决条件,因为我的工作场所我想要阻止这些说明中引用的自动先决条件下载器。
https://gcc.gnu.org/wiki/InstallingGCC
需要从此处获取先决条件,将其置于解压缩GCC时创建的目录的根目录中。然后解压缩并链接它们,就像您已经解压缩的批处理文件中所做的那样./contrib/download_prerequisites。
ftp://gcc.gnu.org/pub/gcc/infrastructure/
最后,我需要运行以下命令,在它完成之后,它会查看新库。当我准备完全切换到本地更新的版本时,我会将其添加到我的.profile中。
LD_LIBRARY_PATH=/users/home/myself/gcc-5.3.0/lib64
export LD_LIBRARY_PATH
现在我使用以下命令运行gfortran,但我稍后会将其添加到我的.profile中。
/users/home/myself/gcc-5.3.0/bin/gfortran Test.f90
有效!从我的本地Linux用户非管理员帐户运行的最新版本的GCC!
编辑添加我们为网络组解决此问题的方式: IT部门不想覆盖原始安装,因此我们安装了一些网络文件夹/gcc-5.3.0。然后我们修改了组的.profile,在标准路径之前添加库和二进制路径。