【发布时间】:2018-09-12 15:33:43
【问题描述】:
我在集群上运行 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
它给出了未找到float.h的编译错误。在另一台运行 gcc 的 linux PC 上,该程序使用命令运行
g++ hello.cpp -o hello
如果可能的话,我将不胜感激找到 systemgcc 或使用 pg 编译器编译 gcc 的任何帮助
我承认这是一团糟,需要重新安装和重新配置操作系统。但后来我做到了
sudo yum install compat-gcc-34
现在我有 gcc34 并且 gcc-8.2 的配置在没有“c 编译器无法创建可执行文件”的情况下通过。 (请注意,之前文章中提到的 ./configure 实际上是
../gcc_8_2_release/configure
在“gcc_8_2_release_build”中,所以 gcc 没有在其源目录中构建。 我现在遇到的问题是make,需要g++,报错
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 的 cmets 和指导方针。然而,在某一时刻,他相当消极和令人沮丧。 但多亏了我的信念和毅力,更重要的是浏览了别人分享的知识,我已经能够找回我开始相信是失败的事业。 谢谢大家。
【问题讨论】:
-
你试过
yum reinstall gcc吗? -
未来;当您想要一个比 RedHat/CentOS 系统上的系统更新的编译器时,请考虑使用“devtoolset”包。请参阅 fx Product Documentation for Red Hat Developer Toolset 7。 Devtoolset 很好地解决了保留系统编译器的问题,同时还让您可以访问更新的工具,这些工具与使用系统编译器构建的所有内容兼容并完全受 RedHat 支持。