elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Resuelto]Para que sirve el archivo con extensión .o que se crea con codeblocks.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto]Para que sirve el archivo con extensión .o que se crea con codeblocks.  (Leído 13,286 veces)
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
[Resuelto]Para que sirve el archivo con extensión .o que se crea con codeblocks.
« en: 21 Junio 2013, 00:21 am »

Tengo un código y lo estoy compilando con varios ide para ver diferencias entre el ejecutable que crean, codeblocks a parte del ejecutable crea un archivo.o y ni idea de para que sirve, por lo que parece el ejecutable no depende el.
Un saludo.


« Última modificación: 21 Junio 2013, 15:12 pm por OmarHack » En línea

I like to test things.
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #1 en: 21 Junio 2013, 00:32 am »

Es un archivo binario


En línea

-- KiLiaN --


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #2 en: 21 Junio 2013, 00:35 am »

Es un archivo objeto.
En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #3 en: 21 Junio 2013, 00:57 am »

Es un archivo objeto.
Ah vale! :)
En línea

I like to test things.
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #4 en: 21 Junio 2013, 01:08 am »

¿No es lo mismo?
En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #5 en: 21 Junio 2013, 01:11 am »

El binario es el "ejecutable" y el archivo objeto en un archivo que contiene el código que se utiliza para unirlo con otro archivo objeto con el linker y hacer un solo programa no? Se usa para proyectos grandes creo. 
En línea

I like to test things.
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #6 en: 21 Junio 2013, 09:01 am »

Según lei yo, el archivo .o contiene el bytecode.
En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #7 en: 21 Junio 2013, 11:18 am »

Ahora si que ya no me entero, entonces lo puedo eliminar? O hace que el ejecutable sea más rápido o algo?
En línea

I like to test things.
mr.blood

Desconectado Desconectado

Mensajes: 150


Ver Perfil
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #8 en: 21 Junio 2013, 12:07 pm »

La compilación se divide en varias partes: dos de ellas son la compilación (código objeto) y el enlazado (código máquina).

http://es.wikipedia.org/wiki/Compilador#Proceso_de_compilaci.C3.B3n

Para que resuelvas las dudas que te queden.



Una vez enlazado, es decir, una vez tienes un .exe, puedes borrarlo, ya no es necesario.

Sa1uDoS
« Última modificación: 21 Junio 2013, 12:09 pm por mr.blood » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Para que sirve el archivo con extensión .o que se crea con codeblocks.
« Respuesta #9 en: 21 Junio 2013, 12:52 pm »

Ahora si que ya no me entero, entonces lo puedo eliminar? O hace que el ejecutable sea más rápido o algo?
Lo puedes eliminar y no lo debes eliminar.

Tu imagínate que tienes un gran proyecto que tardase en compilar 20 minutos. Si cada vez que tienes que cambiar una línea de código te tiras 20 minutos no llegas a ninguna parte.

Lo que se hace, es dividir el proyecto en varios archivos cpp. Cada archivo cpp se compila de forma autonóma, después se unén los archivos compilados (linker) y se forma el programa.

De este modo que si cambias una línea de código solo tendrías que compilar ese fichero cpp. Los archivos cpp compilados suelen tener extensión .o. No hay peligro en eliminarlos pero después tendrías que volver a compilarlos desde 0.

¿Cómo se hace un proyecto con varios archivos? En Codeblocks está chupado (File -> New Emply file y lo guardas con extensión .cpp). He aquí un ejemplo con 3 archivos (uno de cabecera hpp):

Main.cpp

Código
  1. #include <iostream>
  2. #include <map>
  3. #include <vector>
  4. #include <sstream>
  5.  
  6. // Archivo de declaraciones
  7.  
  8. #include "Funciones.hpp"
  9.  
  10. using namespace std;
  11.  
  12. typedef void (*Puntero_A_Funcion)(void);
  13.  
  14. int main()
  15. {
  16.    void (*Funcion)(void); // Puntero a funcion sin argumentos
  17.    string Mensaje;
  18.    map<string,Puntero_A_Funcion> Comandos;
  19.    vector<string> texto;
  20.    string str;
  21.  
  22.    Comandos["write"] = Escribir;
  23.    Comandos["copy"] = Copiar;
  24.    Comandos["cut"] = Cortar;
  25.    Comandos["delete"] = Borrar;
  26.    Comandos["Destroy"] = Destruir;
  27.    Comandos["Kill"] = Matar;
  28.  
  29.    getline(cin, str);
  30.    stringstream is(str);
  31.  
  32.    while(is >> str) texto.push_back(str);
  33.  
  34.    cout <<"Las palabras que pusiste son: " << endl;
  35.  
  36.    for (int i = 0; i < texto.size(); i++)
  37.        cout << i + 1 << ". " << texto[i] << endl;
  38.  
  39.    cout << endl;
  40.  
  41.    for (int i = 0; i < texto.size(); i++)
  42.    {
  43.        Funcion = Comandos[texto[i]]; // Obtengo el puntero a la funcion correspondiente
  44.  
  45.        if (Funcion) // Si existe la funcion
  46.              Funcion(); // llamar a la funcion
  47.        else
  48.             cout<<"Error, no existe el comando introducido: "<<texto[i]<<endl;
  49.    }
  50.  
  51.    return 0;
  52. }

Funciones.hpp

Código
  1. // Se le dice al compilador que este archivo es de "inclusión única"
  2.  
  3. #pragma once
  4.  
  5. // Prototipos de las funciones
  6.  
  7. void Copiar();
  8. void Escribir();
  9. void Cortar();
  10. void Borrar();
  11. void Destruir();
  12. void Matar();
  13.  

Funciones.cpp

Código
  1. // Incluimos el archivo con los prototipos
  2.  
  3. #include "Funciones.hpp"
  4.  
  5. // Definiendo las funciones
  6.  
  7. void Escribir()
  8. {
  9.    cout<<"Has escrito write"<<endl;
  10. }
  11.  
  12. void Cortar()
  13. {
  14.    cout<<"Has escrito cortar"<<endl;
  15. }
  16.  
  17. void Copiar()
  18. {
  19.    cout<<"Has escrito copiar"<<endl;
  20. }
  21.  
  22. void Borrar()
  23. {
  24.    cout<<"Has escrito borrar"<<endl;
  25. }
  26.  
  27. void Destruir()
  28. {
  29.    cout<<"has escrito destruir"<<endl;
  30. }
  31.  
  32. void Matar()
  33. {
  34.    cout<<"has escrito matar"<<endl;
  35. }
  36.  
« Última modificación: 21 Junio 2013, 13:00 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
archivo con extensión .m4u
Multimedia
`·[Ðani]·´ 4 3,668 Último mensaje 3 Febrero 2004, 23:23 pm
por `·[Ðani]·´
Crea tu propia extensión para Firefox [programación en XUL]
Tutoriales - Documentación
Casidiablo 0 10,523 Último mensaje 22 Marzo 2006, 20:12 pm
por Casidiablo
Para que sirve este archivo de windows??
Windows
777Rubenix777 3 6,903 Último mensaje 14 Septiembre 2010, 20:31 pm
por jadara
[Resuelto] Existe extension php_pdo_mysqli
PHP
danny920825 6 2,559 Último mensaje 17 Febrero 2017, 13:37 pm
por danny920825
¿Para que sirve agregar esto a un archivo JS o CSS '?2333' ?
Desarrollo Web
SrTrp 3 2,703 Último mensaje 17 Abril 2020, 06:21 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines