¿Como compilo ejecutables en ubuntu?

Iniciado por Desiresportal, 23 Octubre 2018, 16:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Desiresportal

Estoy familiarizado con el comilador g++ que trae Ubuntu. Sé que puedo ejecutar un programa compilado con la terminal desde la propia terminal.

El caso es que lo quiero tener tan facil como hacer doble click. Por el programa que por fin he terminado, por el programa que estoy haciendo ahora y los programas que vaya a hacer en el futuro.

Sé que puedo hacerlo con g++. Compilar en la terminal y obtener un programa que se vé como un rombo morado es algo que hice a modo de pruebas y a dia de hoy no recuerdo cual fue la orden que utilice. Ni siquiera recuerdo donde encontré las instrucciones al respecto. Solo sé que no he vuelto a encontrarlo ni a compilarlo obteniendo un ejecutable con el icono del rombo morado.

¿Cual es el parametro que tengo que poner a g++ para que compile mi codigo C++ creandome un ejecutable que aparece como un rombo morado en el explorador de archivos? ¿Es indispensable hacer la compilacion en dos ordenes haciendo primero el archivo ".o"?

Por ahora solo son programas de consola. No sé si esto es un problema. ¿Puede que una actualizacion haya cambiado algo de g++ impidiendo hacer ejecutables tan facil como antes?

huchoko

Los .o, .out, .elf, so o llanamente sin formato son ejecutables.
Todos ellos son ELF.
De hecho, puedes colocarle cualquier extensión a el ELF, ya que el archivo tiene en su interior algo llamado "número mágico"
en este caso el de el ELF dice ELF al comienzo del archivo, en los exe de Windows es un MZ.
Y para que se abra de un clic, creo que deberías crear un acceso directo.
Código (bash) [Seleccionar]

g++ fuente.cpp -o ejecutable.elf

Saludos

Desiresportal

Como he dicho, una vez lo conseguí hacer desde la terminar con g++.

Entiendo lo del numero magico. Algo leí sobre el formato ejecutable de windows y la estructura de los datos internos que contiene un programa.

Seguiré intentando encontrar la forma de hacerlo. Lo de la extension no esperaba que fuese a funcionar.

Gracias de todos modos.

Desiresportal

Gracias al detalle que has mencionado ("elf") he encontrado la solucion en internet.

Todo lo que hacía falta era añadir "-no-pie" en la orden de compilado.

Muchas gracias por la ayuda. Doy el tema por cerrado.