2009-07-17 3 views
6

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

+0

В чем разница между исполняемым файлом и исполняемым файлом Linux? – Ben

+0

вы можете уточнить? Файлы '* .out' являются исполняемыми файлами. Вам нужен другой тип исполняемых файлов? – notnoop

+0

Nathan, имя 'a.out' является историческим артефактом, начиная с самых ранних компиляторов Unix. См. Статью в Википедии по теме: http://en.wikipedia.org/wiki/A.out – quark

ответ

18

Этот исполняемый файл является «исполняемым 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.

+0

Большое спасибо !!!!! –

+4

Не gcc (на самом деле линкер, который он вызывает) уже установил исполняемый бит в свой выходной файл? – CesarB

+2

@CesarB: Да, gcc-вызов по умолчанию выполняет исполняемое исполняемое имя исполняемого файла. – quark

2

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

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

HTH.

+0

Файл * .out уже является исполняемым, но как я могу создать собственный исполняемый файл Linux, встроенные исполняемые файлы linux не имеют расширения. –

+5

В linux расширения не имеют значения. Вы можете просто переименовать файл во что угодно. – notnoop

+0

Когда проблема разрешена, я знаю. Благодаря! –

4

Чтобы создать исполняемый файл с именем myprog вы можете вызвать GCC, как это:

gcc -c -o myprog something.c 

Вы также можете просто переименовать * .out файл GCC создает требуемое имя.