我正在集群上运行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的评论和指南。但是,有一点他很消极并且沮丧。 但是由于我的信念和毅力,更重要的是浏览了其他人共享的知识,我才得以恢复我开始被认为是失败的事业。 谢谢大家。
答案 0 :(得分:3)
这比编程问题更多是系统管理员问题。
我的建议
不要弄乱您的/usr/bin/
。让您的包管理器yum
来填充它-切勿在没有yum
的情况下在其中添加任何内容;因此,请手动删除您在此处所做的任何符号链接(错误)
使用gcc
重新安装旧系统g++
4.4和yum
4.4(使用--program-suffix=-8
)
从源代码开始重新构建GCC 8。使用--prefix
(但没有--prefix=$HOME/soft/
或/usr/local/bin/gcc-8
(如果您没有root访问权限))进行配置。因此它将安装/usr/local/bin/g++-8
和--prefix=$HOME/soft/
等...(或者,如果您给了$HOME/soft/bin/gcc-8
,则$HOME/bin/
等...)
创建$HOME/bin/
(如果您还没有的话)
确保$PATH
中/usr/bin/
早于{em}(在ln -sv /usr/local/bin/gcc-8 $HOME/bin/gcc
之前)
添加符号链接g++
,并同样添加gcc
等。
然后,当您键入/usr/local/bin/gcc-8
时,您将获得指向/usr/local/
等的符号链接。
如果您无法写入--prefix=$HOME/soft/
(例如,因为您没有root权限...),则可以将.../configure
传递给GCC 8 /usr/local/
,然后替换$HOME/soft/
以上/usr/local/
如果您是系统管理员,并且可以写入ln -s /usr/local/bin/gcc-8 /usr/local/bin/gcc
并且必须为许多用户设置内容:添加符号链接/usr/local/bin/
等,并要求您的用户将$PATH
放入他们的 /usr/bin/
之前的./configure
顺便说一句,请注意,明确记录了需要在其源代码树的外部中构建GCC 8(或其他):在Installing GCC中,您可以阅读:
首先,我们强烈建议,将GCC建在与源代码不同的目录中,该目录不在源代码树之内。
(“强烈推荐”是一种礼貌的方式,“您绝对应该”)
所以您的function my_simple_crypt( $string)
{
global $secret_key, $secret_iv;
$output = false;
$encrypt_method = "AES-256-CBC";
$key = hash( 'sha256', $secret_key );
$iv = substr( hash( 'sha256', $secret_iv ), 0, 16 );
$output = openssl_decrypt( base64_decode( $string ), $encrypt_method, $key, 0, $iv );
return $output;
}
是另一个错误。
您可能以比您想象的更严重的方式弄乱了系统(也许您需要重新安装或致电Redhat支持)。
PS。我不知道Redhat(仅在上个世纪使用过)。我最喜欢的发行版是Debian / testing或Debian / unstable(我的计算机是台式机,而不是群集)。
答案 1 :(得分:0)
此问题已通过以下命令解决
sudo yum install compat-gcc-34-c++
sudo yum install compat-gcc-34-g77
一旦安装了较旧版本的gcc,就会构建最新版本的gcc-8.2,而系统也不会再变得混乱不堪。非常健康而且健康。