Трудности при компилирането на netfilter_queue за в CentOS 5.4 (GCC грешка)

Сериозно съм обезкуражен, след като прекарах часове в опити да разбера какви са проблемите ми, докато компилирах c библиотека (netfilter_queue) за моята машина centos 5.4. Работя с машина centos x64.

При стартиране на ./configure видях грешка, показваща, че компилаторът ми е неуспешен. След като проверих моя файл "config.log", създаден от командата ./configure, видях, че не успя да компилира sanity 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-битова машина. Само да отбележа, че инсталирах gcc и всички негови зависимости ръчно, като използвах rpm, доставяйки rpm файловете от CentOS-CD.

Помощта ще бъде високо оценена. Благодаря предварително, Лорън.


person Lauren Ottawa    schedule 17.11.2014    source източник
comment
Защо ги инсталирахте ръчно с rpm вместо с yum? Какво казва uname -a? Какво казва rpm -qa --qf '%{n}-%{v}-%{r}.%{arch}\n' gcc?   -  person Etan Reisner    schedule 17.11.2014
comment
Тъй като моята машина всъщност е емулирана с virtualbox и не е свързана с интернет и следователно не е свързана с онлайн хранилището. Бих могъл да използвам c6-media repository, но предпочетох да го инсталирам сам   -  person Lauren Ottawa    schedule 18.11.2014
comment
c6-media или c5-media? Какво ще кажете за изхода от тези други команди?   -  person Etan Reisner    schedule 18.11.2014
comment
Всъщност c5, моя грешка. Какво имаш предвид под други команди? кои команди искате да получите изхода?   -  person Lauren Ottawa    schedule 18.11.2014
comment
Двамата, които споменах в първия си коментар.   -  person Etan Reisner    schedule 18.11.2014
comment
uname -a: uname -a = Linux 2.6.18-348.3.1.el5 #1 SMP Mon Nov 17 13:39:25 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux   -  person Lauren Ottawa    schedule 18.11.2014
comment
Вие всъщност ме насочихте към решението, благодаря ви много!. проблемът беше, че използвах 64-битова машина, но инсталирах само 32-битов gcc и моят асемблер по подразбиране беше 32-битов, което обърка моя компилатор. проблемът може да бъде решен чрез изтегляне на специфичните RPM (по ирония на съдбата CD предоставя само 32 битови RPM, което прави глупости). благодаря ти Etan!   -  person Lauren Ottawa    schedule 18.11.2014
comment
Трябва да публикувате решението като отговор на този въпрос и да го приемете, ако смятате, че ще бъде полезно за някого в бъдеще.   -  person Etan Reisner    schedule 18.11.2014


Отговори (1)


проблемът беше, че използвах 64-битова машина, но инсталирах само 32-битов gcc и моят асемблер по подразбиране беше 32-битов, което обърка моя компилатор. проблемът може да бъде решен чрез изтегляне на специфичните RPM (по ирония на съдбата CD предоставя само 32 битови RPM, което прави глупости). благодаря ти Etan!

person Lauren Ottawa    schedule 17.11.2014