Development/Tutorials/Debugging Linker Errors (es): Difference between revisions
< Development | Tutorials
(Created page with '{{Template:I18n/Language Navigation Bar|Development/Tutorials/Debugging Linker Errors}} Este tutorial da pasos precisos para solucionar problemas relacionados con el enlazado de...') |
(added tutorialbrowser template) |
||
Line 1: | Line 1: | ||
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Debugging Linker Errors}} | {{Template:I18n/Language Navigation Bar|Development/Tutorials/Debugging Linker Errors}} | ||
{{TutorialBrowser (es)| | |||
series=Getting Started| | |||
name=Solucionando problemas de enlazado| | |||
}} | |||
Este tutorial da pasos precisos para solucionar problemas relacionados con el enlazado de aplicaciones y librerías. | Este tutorial da pasos precisos para solucionar problemas relacionados con el enlazado de aplicaciones y librerías. |
Revision as of 23:01, 29 September 2010
Development/Tutorials/Debugging Linker Errors
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
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.