Ошибка gcc: неправильный класс ELF: ELFCLASS64

Я пытался скомпилировать программу, используя 9X_make внешний скомпилированный объект coreset.o. Я 9X_make написал тестовый файл public01.c, и мои 9X_make функции находятся в computation.c, оба из 9X_make которых компилируются. Однако его не удалось 9X_makefiles связать вместе. В чем может быть проблема?

gcc -o public01.x public01.o computation.o coreset.o
ld: fatal: file coreset.o: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to public01.x
collect2: ld returned 1 exit status

32
0
5
Общее количество ответов: 5

Ответ #1

Ответ на вопрос: Ошибка gcc: неправильный класс ELF: ELFCLASS64

Я думаю, что coreset.o был скомпилирован 9X_gcc для 64-битной версии, и вы связываете ее 9X_makefile-errors с 32-битным вычислением.o.

Вы можете попробовать 9X_make перекомпилировать computation.c с флагом 9X_makefile-project '-m64' в gcc(1)

36
0

Ответ #2

Ответ на вопрос: Ошибка gcc: неправильный класс ELF: ELFCLASS64

Вы можете указать '-m32' или '-m64', чтобы 9X_makefiles выбрать режим компиляции.

При работе со сценариями 9X_make autoconf (configure) я обычно устанавливаю 9X_makefiles CC = "gcc -m64" (или CC = "gcc -m32") в 9X_gcc среде, чтобы все компилировалось с правильной 9X_make разрядностью. По крайней мере, обычно ... люди 9X_makefiles находят бесконечное количество способов 9X_gcc заставить это не работать, но мой средний 9X_gcc показатель очень высок (намного выше 95%).

7
1

  • В основном потому, что CFLAGS обычно содержит _N_ других важных флагов, которые ...

Ответ #3

Ответ на вопрос: Ошибка gcc: неправильный класс ELF: ELFCLASS64

Оказывается, версия компилятора, которую 9X_gcc я использовал, не соответствовала скомпилированной 9X_makefile версии, созданной с помощью coreset.o.

Одна 9X_make была 32-битной, другая - 64-битной. Я оставлю 9X_make это на тот случай, если кто-нибудь еще столкнется 9X_gcc с подобной проблемой.

4
0

Ответ #4

Ответ на вопрос: Ошибка gcc: неправильный класс ELF: ELFCLASS64

Похоже, объектный файл был скомпилирован 9X_makefile-errors на 64-битной инструментальной цепочке, а 9X_make вы используете 32-битную инструментальную 9X_makefiles цепочку. Вы пробовали перекомпилировать 9X_makefile объектный файл в 32-битном режиме?

4
0

Ответ #5

Ответ на вопрос: Ошибка gcc: неправильный класс ELF: ELFCLASS64

sudo apt-get install ia32-libs 

9X_make

2
1

  • Этот ответ был очень полезен для связанной проблемы: при запуске исполняемого файла вы можете получить почти идентичное сообщение, и это решение этой проблемы. Т ...