Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 以用户身份在Linux中安装gfortran_Gcc_Fortran_Gfortran - Fatal编程技术网

Gcc 以用户身份在Linux中安装gfortran

Gcc 以用户身份在Linux中安装gfortran,gcc,fortran,gfortran,Gcc,Fortran,Gfortran,我是工作中Linux(CentOS 6.6)服务器的非管理员用户。我通过windows计算机上的终端程序登录。我的问题是,升级GCC/gfortran对我来说并不舒服,所以我只想从我的个人文件夹中运行它。他们声称最新的yum(此操作系统版本的devtoolset-3)将降级他们拥有的其他一些功能。无论如何,它不是GCC的最新版本 我已经从gfortran.com下载了最新的GCC 5.3二进制文件和先决条件,几乎可以编译我的测试代码。实际上,当我执行以下操作时,它将使用-c编译,但不会链接。该文

我是工作中Linux(CentOS 6.6)服务器的非管理员用户。我通过windows计算机上的终端程序登录。我的问题是,升级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

经过许多努力,我已经回答了我自己的问题!为了以非管理员身份将GCC安装到我自己的个人Linux帐户,我不得不编译GCC,而不是使用我最初下载的二进制文件。我的朋友是makeinstall,它知道所有东西都需要去哪里,这是我在二进制文件中没有的

关键是使用build it yourself方法(-prefix)提供的以下命令安装到我的用户根目录/GCC:

对我来说,我不得不禁用multilib,因为我想我的系统只有64位库(我认为这是导致我最初问题的原因)

在此之前,我还必须手动下载先决条件,因为我的工作场所可能会阻止这些说明中引用的自动先决条件下载程序

https://gcc.gnu.org/wiki/InstallingGCC
先决条件需要从这里获取,放在解压GCC时创建的目录的根目录中。然后解压并链接它们,就像在已解压的批处理文件中所做的那样。/contrib/download\u先决条件

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

编辑以添加我们如何为网络组解决此问题:
它不想覆盖原始安装,因此我们安装到了某个网络文件夹/gcc-5.3.0。然后我们修改了组的.profile,在标准路径之前添加了库和二进制路径。

经过很多努力,我已经回答了我自己的问题!为了以非管理员身份将GCC安装到我自己的个人Linux帐户,我不得不编译GCC,而不是使用我最初下载的二进制文件。我的朋友是makeinstall,它知道所有东西都需要去哪里,这是我在二进制文件中没有的

关键是使用build it yourself方法(-prefix)提供的以下命令安装到我的用户根目录/GCC:

对我来说,我不得不禁用multilib,因为我想我的系统只有64位库(我认为这是导致我最初问题的原因)

在此之前,我还必须手动下载先决条件,因为我的工作场所可能会阻止这些说明中引用的自动先决条件下载程序

https://gcc.gnu.org/wiki/InstallingGCC
先决条件需要从这里获取,放在解压GCC时创建的目录的根目录中。然后解压并链接它们,就像在已解压的批处理文件中所做的那样。/contrib/download\u先决条件

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

编辑以添加我们如何为网络组解决此问题:
它不想覆盖原始安装,因此我们安装到了某个网络文件夹/gcc-5.3.0。然后我们修改了组的.profile,在标准路径之前添加了库和二进制路径。

我不明白您的意思。您是使用GCC二进制文件还是从源代码编译GCC?如果您使用的是二进制文件,那么您将编译什么?当您收到提到的错误时,您正在执行哪个命令?我正在尝试编译我的代码。gfortran test.f90在collect2中产生结果:致命错误:找不到'ld',但gfortran-c test.f90工作正常并生成test.oI我不理解您的意思。您是使用GCC二进制文件还是从源代码编译GCC?如果您使用的是二进制文件,那么您将编译什么?当您收到提到的错误时,您正在执行哪个命令?我正在尝试编译我的代码。gfortran test.f90导致collect2:致命错误:找不到'ld',但gfortran-c test.f90工作正常并生成test.oA。我发现的一个缺点是,我的同事都无法运行我的程序,因为他们(尚未)访问在运行时调用的gcc 5.3库。由于某些原因,-static compile标志不起作用。啊哈,-static libgfortran用于静态构建我发现的一个缺点是,我的同事都不能运行我的程序,因为他们(还)无法访问在运行时调用的gcc 5.3库。由于某些原因,-static compile标志不起作用。Aha,-static libgfortran用于静态构建