Создайте исполняемый файл Linux с помощью GCC

Я использую Linux Ubuntu Intrepid Ibex и компилирую файлы C++ с помощью GCC, но когда я компилирую, gcc создает файл a.out, то есть исполняемый файл, но как я могу создавать исполняемые файлы Linux? Спасибо!


person Nathan Campos    schedule 17.07.2009    source источник
comment
В чем для вас разница между исполняемым файлом и исполняемым файлом Linux?   -  person Ben    schedule 17.07.2009
comment
можешь уточнить? Файлы *.out — это исполняемые файлы. Вам нужен другой тип исполняемых файлов?   -  person notnoop    schedule 17.07.2009
comment
Натан, имя «a.out» — это исторический артефакт первых компиляторов Unix. См. статью в Википедии на эту тему: en.wikipedia.org/wiki/A.out   -  person quark    schedule 17.07.2009
comment
@notnoop: это просто a.out, а не *.out. (Привет из будущего!)   -  person Keith Thompson    schedule 01.04.2018
comment
a.out уже должен быть исполняемым. Нет необходимости делать что-либо еще. Просто беги с ./a.out   -  person Max MacLeod    schedule 04.07.2019


Ответы (3)


Этот исполняемый файл является «исполняемым файлом Linux», то есть исполняемым файлом в любой последней системе Linux. Вы можете переименовать файл в то, что вы хотите, используя

rename a.out your-executable-name

или еще лучше, сообщите GCC, куда поместить его выходной файл, используя

gcc -o your-executable-name your-source-file.c

Имейте в виду, что прежде чем системы Linux позволят вам запустить файл, вам может потребоваться установить его «исполняемый бит»:

chmod +x your-executable-name

Также помните, что в Linux расширение файла имеет очень мало общего с тем, чем он является на самом деле — ваш исполняемый файл может называться something, something.out или даже something.exe, и если он создается GCC, и вы выполняете chmod +x в файле , вы можете запустить его как исполняемый файл Linux.

person Tim    schedule 17.07.2009
comment
Разве gcc (на самом деле компоновщик, который он вызывает) уже не установил исполняемый бит в своем выходном файле? - person CesarB; 17.07.2009
comment
@CesarB: Да, вызов gcc делает «ваше-исполняемое-имя» исполняемым по умолчанию. - person quark; 17.07.2009
comment
В некоторых системах может быть команда rename, но mv — это обычный способ переименовать файл. - person Keith Thompson; 01.04.2018

Чтобы создать исполняемый файл с именем myprog, вы можете вызвать gcc следующим образом:

gcc -c -o myprog something.c

Вы также можете просто переименовать файл *.out, который генерирует gcc, в желаемое имя.

person sth    schedule 17.07.2009

Это исполняемый файл. Если вам не нравится a.out, вы можете передать компилятору флаг -o. Если исполняемый файл не помечен исполняемым битом, вам нужно сделать это самостоятельно:

chmod u+x ./a.out
./a.out

ХТН.

person EightyEight    schedule 17.07.2009
comment
Файл *.out уже является исполняемым файлом, но как я могу создать собственный исполняемый файл Linux, собственные исполняемые файлы Linux не имеют расширений. - person Nathan Campos; 17.07.2009
comment
В Linux расширения не имеют значения. Вы можете просто переименовать файл во что угодно. - person notnoop; 17.07.2009
comment
Когда проблема в разрешении, я знаю. Спасибо! - person Nathan Campos; 17.07.2009