Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Genial

    (Puntos:0)
    por pobrecito hablador el Lunes, 19 Octubre de 2009, 22:37h (#1180375)

    Ocurre lo mismo cuando compilas con código que no está en una biblioteca, sino en un fichero objeto normal y corriente,
    Pues la verdad es que no X-D El código en ese caso acaba junto con el resto del código, típicamente en la sección de código ejecutable.

    Puedes verlo si la desensamblas, y puedes ver también que no aparece el código de las bibliotecas por ninguna parte. En Linux podría ser:

    ~$ objdump -d -j .text a.out

    Verás que las llamadas a función aparece como call blablabla@plt. ¿En blablabla@plt está el código de la biblioteca? Compruébalo tú mismo:

    ~$ objdump -d -j .plt a.out

    no sabes cómo funciona un compilador.
    ¿Sabes? A veces la mejor forma de salir de un hoyo no es seguir cavando :-)
    [ Padre ]
  • Re:Genial

    (Puntos:0)
    por pobrecito hablador el Martes, 20 Octubre de 2009, 06:58h (#1180391)

    El código en ese caso acaba junto con el resto del código, típicamente en la sección de código ejecutable.

    Madre mía... Léelo todo en lugar de la parte que mejor te viene. Te estoy hablando de la parte en la que compilas. Transformas un .c en un .o y dentro de ese .o (lo que se llama compilar). Luego, según el tipo de enlazado que elijas (estático o dinámico), juntará el código en una única sección de código resolviendo esas tablas de símbolos que tanto te gustan a ti, o dejará las tablas no resueltas y lo separará en dos secciones de código: la del ejecutable y la de la biblioteca. Y luego, en la fase del enlazado dinámico, completará la tarea que tú no completaste tras compilar. Sin más.

    ¿Sabes? A veces la mejor forma de salir de un hoyo no es seguir cavando :-)

    Eso mismo te digo yo. Mi campo profesional son los compiladores. Me dedico a ello, sé muy bien cómo funcionan y por eso he saltado, porque no podía aguantar ver cómo se soltaban barbaridades, medias verdades y cómo se retorcía el proceso de compilación separando cosas que no están separando, u otorgando un papel especial a una parte del proceso según el momento en el que se haga.

    Pero nada, tú sigue con lo tuyo. Te lo digo: no sabes cómo funciona un compilador. Es un hecho.

    [ Padre ]
    • Re:Genial de pobrecito hablador (Puntos:0) Martes, 20 Octubre de 2009, 11:06h