Linux 未找到C编译器,但已安装GCC

Linux 未找到C编译器,但已安装GCC,linux,gcc,slackware,Linux,Gcc,Slackware,我在一台专用服务器上新安装了Slackware64 14.0,我很难编译nginx ./configure (my options) 返回 checking for OS + Linux 3.10.23-xxxx-std-ipv6-64 x86_64 checking for C compiler ... not found ./configure: error: C compiler cc is not found 但是安装了gcc,因为这是gcc-v返回的结果: Reading sp

我在一台专用服务器上新安装了Slackware64 14.0,我很难编译nginx

./configure (my options)
返回

checking for OS
 + Linux 3.10.23-xxxx-std-ipv6-64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found
但是安装了gcc,因为这是
gcc-v
返回的结果:

Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/4.7.1/specs
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/4.7.1/lto-wrapper
Target: x86_64-slackware-linux
Configured with: ../gcc-4.7.1/configure --prefix=/usr --libdir=/usr/lib64 --mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-languages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checking=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib64/python2.7/site-packages --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --enable-lto --with-gnu-ld --verbose --enable-java-home --with-java-home=/usr/lib64/jvm/jre --with-jvm-root-dir=/usr/lib64/jvm --with-jvm-jar-dir=/usr/lib64/jvm/jvm-exports --with-arch-directory=amd64 --with-antlr-jar=/home/slackware/slackbuilds/gcc/antlr-runtime-3.4.jar --enable-multilib --target=x86_64-slackware-linux --build=x86_64-slackware-linux --host=x86_64-slackware-linux
Thread model: posix
gcc version 4.7.1 (GCC) 
我尝试的内容(谷歌搜索后)

/tmp
是用
noexec
安装的”
事实上,这是我强化配置的一部分。我更改了它并重新启动以确保,现在我的
/etc/fstab
如下所示:

# <file system> <mount point>   <type>  <options>   <dump>  <pass>
/dev/md1    /   ext4    errors=remount-ro,discard   0   1
/dev/md2    /home   ext4    defaults,discard    1   2
/dev/md5    /var/www    ext4    defaults,discard    1   2
/dev/md6    /var/log    ext4    defaults,discard    1   2
/dev/md7    /tmp    ext4    defaults,discard,nodev,nosuid   1   2
/dev/md8    /var/lib/mysql  ext4    defaults,discard    1   2
/dev/sda3   swap    swap    defaults    0   0
/dev/sdb3   swap    swap    defaults    0   0
proc            /proc   proc    defaults        0       0
sysfs           /sys    sysfs   defaults        0       0
/tmp            /var/tmp none   rw,nosuid,nodev,bind    0   0
我做的其他事情:

查看nginx配置文件时,他们使用了一个CC变量。此CC不存在

CC=/usr/bin/gcc
这也不管用

我尝试从源代码处编译另一个程序,以确保这不是nginx问题,我发现了一些有趣的东西:

通过尝试编译
htop
,我得到了以下结果:

./configure 

checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/napster/htop-master':
configure: error: C compiler cannot create executables
See `config.log' for more details
这是意料之中的,因为即使我的安装很少,没有大多数developer工具,gcc还是可以找到的。应通过安装所需的工具来解决此错误

我甚至检查了
/usr/bin
上的符号链接,以确保gcc和cc正常:

ls -l /usr/bin

cc -> gcc
gcc -> gcc-4.7.1
有什么想法吗?

提前感谢。

config.log文件的内容是什么

很可能您在某个地方发现了一些错误的cflag或ldflag——可能是在配置脚本中,也可能是在nginx/htop默认值中

CFLAGS和LDFLAGS是传递给编译器命令行的选项。如果它们无效,那么编译器将无法运行

如果您缺少nginx/htop所需的基本库和导致gcc退出的LDFLAG,则可能会出现相同的症状


您确实需要检查config.log文件。

我想可能是权限问题。
我使用sudo./configure就可以了。

即使错误不同,原因也是一样的。解决config.log上指出的错误也解决了nginx one。谢谢。如果其他人想知道,我的htop的config.log指出我缺少libmpc。
ls -l /usr/bin

cc -> gcc
gcc -> gcc-4.7.1