2009-07-17 15 views
6

Estoy usando Linux Ubuntu Intrepid Ibex y compilando archivos C++ con GCC, pero cuando compilo, gcc crea un archivo ** .out *, que es el ejecutable, pero cómo puedo hacer Linux ejecutables? ¡Gracias!Construir un ejecutable Linux usando GCC

+0

¿Cuál es la diferencia para usted entre un ejecutable y un ejecutable de Linux? – Ben

+0

¿Puedes aclarar? Los archivos '* .out' son los ejecutables. ¿Necesitas otro tipo de ejecutables? – notnoop

+0

Nathan, el nombre 'a.out' es un artefacto histórico, de los primeros compiladores de Unix. Vea el artículo de Wikipedia sobre el tema: http://en.wikipedia.org/wiki/A.out – quark

Respuesta

18

Ese ejecutable es un "ejecutable de Linux", es decir, es ejecutable en cualquier sistema Linux reciente. Puede cambiar el nombre del archivo a lo que quiere usando

rename a.out your-executable-name

o mejor aún, decirle GCC dónde poner su archivo de salida usando

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

Tenga en cuenta que antes de que los sistemas Linux permite ejecutar el archivo , es posible que tenga que configurar su "bit de ejecución":

chmod +x your-executable-name

recordar también que en Linux, la extensión del archivo tiene muy poco que ver con lo que realmente es - el ejecutable puede ser nombrado something, something.out, o incluso something.exe, y mientras es producido por GCC y usted hace chmod +x en el archivo, puede ejecutarlo como un ejecutable de Linux.

+0

Muchas gracias !!!!! –

+4

¿No gcc (de hecho, el enlazador al que llama) ya estableció el bit ejecutable en su archivo de salida? – CesarB

+2

@CesarB: Sí, la llamada gcc hace que el ejecutable 'your-executable-name' sea el predeterminado. – quark

2

Ese es el ejecutable. Si no te gusta a.out, puedes pasar un indicador -o al compilador. Si el archivo ejecutable no está marcado con un bit ejecutable, debe hacerlo usted mismo:

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

HTH.

+0

El archivo * .out ya es un ejecutable, pero cómo puedo construir un ejecutable Linux nativo, los ejecutables nativos de Linux no tener extensiones –

+5

En Linux, las extensiones no importan. Puede cambiar el nombre del archivo a cualquier cosa que desee. – notnoop

+0

Cuando el problema es la permición, lo sé. ¡Gracias! –

4

Para crear un ejecutable llamado myprog puede llamar gcc como esto:

gcc -c -o myprog something.c 

También puedes, simplemente cambiar el nombre del archivo * .out gcc genera al nombre deseado.

Cuestiones relacionadas