Команда gcc -c
создает неисполняемый объектный файл.Если вы хотите, чтобы вывод был исполняемым, не используйте опцию -c
.
Я не уверен, на что вы надеялись -c
, но именно для того, чтобы не генерировать исполняемый файл и ваш GCCработает как задумано.