gcc找不到cc1plus

dar*_*ber 3 python gcc centos pandas

我正在尝试在CentOS 6上安装python包pandas但是我遇到了gcc编译器的问题:

sudo pip install pandas
...    
creating build/temp.linux-x86_64-2.7/pandas/msgpack

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -D__LITTLE_ENDIAN__=1 -Ipandas/src/msgpack -Ipandas/src/klib -Ipandas/src -I/opt/rh/python27/root/usr/lib64/python2.7/site-packages/numpy/core/include -I/opt/rh/python27/root/usr/include/python2.7 -c pandas/msgpack/_packer.cpp -o build/temp.linux-x86_64-2.7/pandas/msgpack/_packer.o -Wno-unused-function

gcc: error trying to exec 'cc1plus': execvp: No such file or directory

error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
...
Run Code Online (Sandbox Code Playgroud)

所以看起来我需要cc1plus,通过阅读需要gcc-g ++.但我已经有了gcc-c ++:

sudo yum install gcc-c++
...
Package gcc-c++-4.4.7-16.el6.x86_64 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)

关于gcc和cc1plus:

gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

which gcc
/opt/rh/devtoolset-2/root/usr/bin/gcc

locate cc1plus
/usr/libexec/gcc/x86_64-redhat-linux/4.4.4/cc1plus
Run Code Online (Sandbox Code Playgroud)

我自己的解决方案如下 有没有人有更好的方法来解决这个问题?

dar*_*ber 9

我自己的问题的解决方案:似乎cc1plus虽然存在,但gcc不可见,因为它不在路径上.所以解决方案是将cc1plus链接到PATH上的目录:

sudo ln -s /usr/libexec/gcc/x86_64-redhat-linux/4.4.4/cc1plus /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

现在sudo pip install pandas成功了.

(但是为什么包管理员首先放在cc1plus那里?)

  • 当然,这有助于紧要关头。但是应该调查他们是否安装了多个版本的 `gcc`。这发生在我今天早些时候午夜左右由 Salt 添加 `gcc72` 时。我的 Jenkins 实例上有一个带有“yum groupinstall Development Tools”的状态文件,当 Salt 设置为运行时,gcc 7.2.1 碰巧被添加到包列表中。快速查看 `/usr/libexec/gcc/x86_64-amazon-linux/7` 下会发现 `cc1plus` 不适用于此版本。同时,`/usr/libexec/gcc/x86_64-amazon-linux/4.8.5` 确实存在`cc1plus`。 (2认同)