【发布时间】:2015-01-14 21:34:57
【问题描述】:
在为我的 centos 5.4 机器编译一个 c 库 (netfilter_queue) 时花了几个小时试图找出我的问题后,我感到非常沮丧。 我正在运行 centos x64 机器。
在运行 ./configure 时,我看到一个错误,表明我的编译器已失败。 在检查了由 ./configure 命令创建的“config.log”文件后,我发现它无法编译一个健全的 c 文件(可能用于检查我的编译器是否正常工作)
它因错误而失败:
/tmp/iuucsLU.s: Error: Suffix or operands invalid for `push`
/tmp/iuucsLU.s: Error: Suffix or operands invalid for `push`
/tmp/iuucsLU.s: Error: Suffix or operands invalid for `pop`
/tmp/iuucsLU.s: Error: Suffix or operands invalid for `pop`
/tmp/iuucsLU.s: Error: Suffix or operands invalid for `pop`
/tmp/iuucsLU.s: Error: Suffix or operands invalid for `push`
当我发现我的问题可能是 gcc 时,我创建了以下 c 文件:
#import <stdio.h>
main()
{
return 0;
}
我将文件命名为“test.c”并尝试使用“gcc test.c”对其进行编译,但失败并出现相同的错误。 我发现我的问题可能是 32/64 位兼容性问题,所以我尝试指定特定的汇编程序运行它。
- 当我执行“gcc -m32 test.c”时,它失败并出现同样的错误。
-
当我执行“gcc -m64 test.c”时失败并出现以下错误:
test.c:0:抱歉,未实现:64 位模式未编译
我无法弄清楚我的问题是什么,我肯定运行的是 64 位机器。 请注意,我使用 rpm 手动安装了 gcc 及其所有依赖项,并从 CentOS-CD 提供 rpm 文件。
我们将不胜感激。 在此先感谢劳伦。
【问题讨论】:
-
你为什么用
rpm手动安装它们而不是使用yum?uname -a说什么?rpm -qa --qf '%{n}-%{v}-%{r}.%{arch}\n' gcc说什么? -
因为我的机器实际上是用 virtualbox 模拟的,并且没有连接到互联网,因此没有连接到在线存储库。我可以使用 c6-media 存储库,但我更喜欢自己安装它
-
c6-media或c5-media?那些其他命令的输出呢? -
其实c5,我的错。 “其他命令”是什么意思?你想得到哪些命令的输出?
-
我在第一条评论中提到的两个。
标签: c linux gcc centos netfilter