【问题标题】:Difficulties compiling netfilter_queue for in CentOS 5.4 (GCC error)在 CentOS 5.4 中编译 netfilter_queue 的困难(GCC 错误)
【发布时间】: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 位兼容性问题,所以我尝试指定特定的汇编程序运行它。

  1. 当我执行“gcc -m32 test.c”时,它失败并出现同样的错误。
  2. 当我执行“gcc -m64 test.c”时失败并出现以下错误:

    test.c:0:抱歉,未实现:64 位模式未编译

我无法弄清楚我的问题是什么,我肯定运行的是 64 位机器。 请注意,我使用 rpm 手动安装了 gcc 及其所有依赖项,并从 CentOS-CD 提供 rpm 文件。

我们将不胜感激。 在此先感谢劳伦。

【问题讨论】:

  • 你为什么用rpm手动安装它们而不是使用yumuname -a 说什么? rpm -qa --qf '%{n}-%{v}-%{r}.%{arch}\n' gcc 说什么?
  • 因为我的机器实际上是用 virtualbox 模拟的,并且没有连接到互联网,因此没有连接到在线存储库。我可以使用 c6-media 存储库,但我更喜欢自己安装它
  • c6-mediac5-media?那些其他命令的输出呢?
  • 其实c5,我的错。 “其他命令”是什么意思?你想得到哪些命令的输出?
  • 我在第一条评论中提到的两个。

标签: c linux gcc centos netfilter


【解决方案1】:

问题是我使用的是 64 位机器,但我只安装了 32 位 gcc,而我的默认汇编器是 32 位的,这让我的编译器感到困惑。这个问题可以通过下载特定的 RPM 来解决(具有讽刺意味的是,cd 只提供了 32 位 RPM,这很无意义)。谢谢伊坦!

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多