Development/Tutorials/Debugging Linker Errors (es)

< Development‎ | Tutorials
Revision as of 17:28, 19 July 2012 by AnneW (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Solucionando problemas de enlazado
Serie   Getting Started
Requisitos previos   Ninguno
Siguiente   n/d
Lectura avanzada   n/d

Este tutorial da pasos precisos para solucionar problemas relacionados con el enlazado de aplicaciones y librerías.

«Undefined symbol»

Cuando el enlazador dice "Undefined reference to 'foo'" y no sabes por qué, sigue estos pasos:

  • Verifica que la librería que supuestamente provee este símbolo está realmente en el comando del enlazador. Para ver el comando completo con CMake, usa make VERBOSE=1. Si -lkdecore está en el comando, entonces al menos le estamos pidiendo al enlazador que use libkdecore.
  • Verifica que se está enlazando la versión correcta de la librería, y no una de un lugar incorrecto. Para ver qué librería está siendo usada por ld, copia y pega el comando completo que da make VERBOSE=1, y agrégale: -Q -v -Wl,-t. En algún lugar del resultado verás la ruta completa de cada librería que se está usando.
  • Verifica que la librería realmente tiene este símbolo. Usa nm -D -C /path/to/lib.so | grep Foo. Si el símbolo aparece con una 'T' ó una 'W' en la segunda columna, entonces efectivamente está provisto por esta librería. Si aparece con una 'U' entonces está sin definir en esta librería, y debe ser provisto por otra librería.

This page was last modified on 19 July 2012, at 17:28. This page has been accessed 1,542 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal