linux x86_64 vm gcc ошибка в архитектуре вывода исполняемого файла, ошибка формата exec файла - PullRequest
0 голосов
/ 07 сентября 2018

Я использую 64-битную Oracle VM на GNU / Linux для компиляции простой программы на c main.c:
int main(){ return 0; }
Команда gcc: gcc -c main.c -o вывод
При запуске: ./output приводит к ошибке : «Невозможно выполнить двоичный файл: ошибка формата Exec»

Почему при компиляции gcc получается исполняемый файл, который не соответствует архитектуре машины (SYSV, а не GNU / Linux)?
Заранее спасибо

1 Ответ

0 голосов
/ 07 сентября 2018

Флаг -c указывает gcc на создание объектного файла . Объектные файлы не являются исполняемыми, вместо этого они вводятся в компоновщик, который используется для создания исполняемого файла.

Либо сбросьте флаг -c:

gcc main.c -o output

Или создайте объектный файл и затем свяжите его:

gcc -c main.c
gcc main.o -o output

Для получения дополнительной информации об аргументах командной строки для GCC, пожалуйста, прочтите документацию для вашей версии GCC.

...