Я пытаюсь создать и запустить программу.
g++ -c source.cpp -o EIC
chmod u+x EIC
./EIC
bash:./EIC: Can not execute binary file: Exec format error.
файл EIC
отображает:
EIC: ELF 64-bit LSB relocatable, x86-x64, version 1(SYSV), not stripped
uname -a
отображает:
Linux localhost.localdomain 4.18.0-193.el8.x86_x64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Скажите, пожалуйста, в чем причина.
Из man g++
:
Когда вы вызываете GCC, он обычно выполняет предварительную обработку, компиляцию, сборка и подключение. «Общие параметры» позволяют остановить это процесс на промежуточной стадии. Например, опция -c говорит не для запуска компоновщика. Затем вывод состоит из объектных файлов, выводимых ассемблер.
Итак, если вы хотите, чтобы g++
запускал компоновщик — для создания исполняемого файла, а не файла объектного кода — вы должны удалить флаг -c
из своей команды.