我在集群上运行centos 6。我安装了最新的gcc-8.2.0。并做了链接"ln -sf /usr/bin/gcc-8.2. gcc“。我对g++和gfortran做了同样的事情。我想重新安装gcc-8.2.0,并继续进行
make clean在gcc-8.2目录中。当我尝试的时候
./configure我知道C编译器不能创建可执行文件,我创建的链接被破坏了。找不到系统gcc-4.4.7
which gcc给不了,gcc
sudo yum install gcc gcc-c++给gcc的已经装好了。我尝试安装rpm,但由于依赖关系而失败。使用配置时,我在/opt/pgi中安装了pg编译器
CC=/path to/pgi/bin/pgcc FC=/path to/pgi/bin/pgfortran ./configure我仍然得到C编译器无法创建可执行文件我尝试了以下c++程序
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
return 0;
}使用命令
/opt/pgi/linux_86_64/12.08/bin/pgcpp hello.cpp -o hello它给出了编译错误,即找不到flowat.h。在另一台运行着gcc的linux PC上,该程序使用以下命令运行
g++ hello.cpp -o hello如果能找到systemgcc或者使用pg编译器编译gcc,我将不胜感激。
我承认这是一个很大的混乱,需要重新安装和重新配置操作系统。但后来我做到了
sudo yum install compat-gcc-34现在我有了gcc34,并且在没有"c编译器无法创建可执行文件“的情况下完成了对gcc-8.2的配置。(请注意,前面的文章中提到的./configure实际上是
../gcc_8_2_release/configure我现在遇到的问题是需要g++的gcc_8_2_release_build,它会给出错误
uint_t(64) or int_t(64) not found.感谢所有通过这篇文章的人,感谢你们的耐心。任何帮助都将不胜感激。
这就是我是如何走出困境的。使用以下两个命令
sudo yum install compat-gcc-34-c++
sudo yum install compat-gcc-34-g77我能够安装较老版本的gcc,c++和g77。然后我就可以构建“gcc-8.2”了。现在我有了一个功能正常的系统,带有最新的gcc,是的,它可能需要重新安装/重新配置,但它是完全功能的。我学到了很多,非常感谢@Basile的评论和指导。然而,在某种程度上,他相当消极和令人沮丧。但多亏了我的信念和毅力,更重要的是浏览了别人分享的知识,我已经能够找回我开始确信是失败的事业。谢谢大家。
发布于 2018-09-12 23:41:56
这与其说是一个编程问题,不如说是一个系统管理员问题。
我的建议是:
/usr/bin/。让你的包管理器从头开始填充它,永远不要在里面添加任何没有从头开始的符号链接;所以手动删除你在那里建立的任何符号链接(通过使用旧的系统yum 4.4 -and yum 4.4 (使用你的GCC 8-andyum gcc 8从头开始)。使用--program-suffix=-8配置它(但不使用--prefix,如果您没有根用户访问权限,则使用--prefix=$HOME/soft/ )。所以它会安装/usr/local/bin/gcc-8和/usr/local/bin/g++-8等。(或者,如果您已经为符号链接提供了--prefix=$HOME/soft/,a $HOME/soft/bin/gcc-8 etc...)$HOME/bin/如果您还没有一个符号链接,请确保在您的符号中早些时候拥有/usr/bin/)ln -sv /usr/local/bin/gcc-8 $HOME/bin/gcc之前,对于g++等也是如此)。然后,当您输入gcc时,您将获得指向/usr/local/bin/gcc-8等的符号链接。
如果您无法写入/usr/local/ (例如,因为您没有根权限...)您可以将--prefix=$HOME/soft/传递给GCC 8 .../configure,然后将上面的/usr/local/替换为$HOME/soft/
如果您是系统管理员并且可以写入/usr/local/,并且必须为许多用户设置以下内容:添加符号链接、ln -s /usr/local/bin/gcc-8 /usr/local/bin/gcc等,并要求您的用户将/usr/local/bin/放在他们的$PATH中,然后再放入/usr/bin/
顺便说一句,请注意,文档中明确说明了需要在其源代码树之外构建GCC 8(或其他版本):在Installing GCC中,您可以阅读:
首先,我们强烈建议将构建到一个独立于源代码的目录中,该目录不在源代码树中。
(“强烈推荐”应该被认为是说“你绝对应该”的一种礼貌方式)
所以你的./configure是另一个错误。
可能发生的情况是,你弄乱了系统比你想象的更严重(也许你需要重新安装,或者打电话给Redhat技术支持)。
PS。我不知道Redhat (只在上个世纪使用过)。我最喜欢的发行版是Debian/testing或Debian/unstable (我的计算机是台式机,而不是集群)。
发布于 2018-09-20 15:13:22
这个问题是通过以下命令解决的
sudo yum install compat-gcc-34-c++
sudo yum install compat-gcc-34-g77一旦安装了这个旧版本的gcc,就构建了最新的版本,即gcc-8.2,系统不再是一团糟。它是非常健康和合适的。
https://stackoverflow.com/questions/52298842
复制相似问题