cómo enlazar librería
Publicado por eduardo (82 intervenciones) el 10/10/2009 03:17:55
Buenas tardes, estoy aprendiendo como crear y usar una librería usando el IDE Codeblocks con MinGw para ello me estoy apoyando en un tutorial que muestra como hacerlo pero usando el Dev-C++ ya que no encuentro ninguno que enseñe con el IDE que utilizo.
El asunto es que estoy muy liado.
El tutorial está en la sgte dirección: http://www.conclase.net/c/devcpp.php?art=libestatica
Luego que he creado la librería, es decir, el archivo "libcadenas.a" el tutorial indica crear un nuevo proyecto para usarla pero hasta aquí no se menciona si la librería se debe mover a algún lado. Bueno yo la deje la carpeta del proyecto en Escritorio/Proyectos/libcadenas
y la carpeta del proyecto que la usará en Escritorio/Proyectos/usocadena
Luego en el proyecto que usará la librería indica dar la orden "libcadenas.a" en el cuadro linker pero como el IDE que uso no tiene un cuadro linker debía tener algo similar, así que me dirigí a:
Project
Buil options...
Linker settings
El cual presenta 2 cuadros "Linker libraries" y "Other linker options" como no sabía en cual de los dos debía colocar la orden probé en uno en el otro y en ambos :)
Luego menciona que con esto ya debería compilar el programa, pues ya me imaginaba que no funcionaría pues yo me preguntaba como sabría el compilador donde está la librería o es que acaso automáticamente la detecta sin importar donde ésta se encuentre.
Me mostró 11 errores debido a las 11 llamadas que se hacen de las funciones indicando que no se encuentran las referencias
Lineas más abajo dice "Aprovechar las opciones del enlazador"
hice lo que menciona moví el header y la librería a las carpetas include y lib respectivamente de la instalación, indica agregar la linea de encabezado <cadenas.h> en el programa principal y cambiar la configuración del linker que tenía "libcadenas.a" por "-lcadenas" compilo y resulta que ahora sólo me muestra 1 error.
Linking console executable: bin\Debug\usocadenas.exe
C:\Archivos de programa\CodeBlocks\MinGW\bin\ld.exe: cannot find -l-lcadenas
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
Pero sigue sin funcionar.
He revisado el código minuciosamente para ver si hay algún error pero no lo encuentro ni tampoco el compilador.
Por favor disculpen que sea tan explícito y haya hecho esto tan largo pero es que necesito ayuda y necesito comprender este tema de creación y uso de librerías
Espero me puedan ayudar.
Muchas gracias.
Nota: Todo lo estoy trabajando en C, es decir, he hecho los cambios pertinentes:
<cctype> por <ctype.h>
cout << por printf()
El asunto es que estoy muy liado.
El tutorial está en la sgte dirección: http://www.conclase.net/c/devcpp.php?art=libestatica
Luego que he creado la librería, es decir, el archivo "libcadenas.a" el tutorial indica crear un nuevo proyecto para usarla pero hasta aquí no se menciona si la librería se debe mover a algún lado. Bueno yo la deje la carpeta del proyecto en Escritorio/Proyectos/libcadenas
y la carpeta del proyecto que la usará en Escritorio/Proyectos/usocadena
Luego en el proyecto que usará la librería indica dar la orden "libcadenas.a" en el cuadro linker pero como el IDE que uso no tiene un cuadro linker debía tener algo similar, así que me dirigí a:
Project
Buil options...
Linker settings
El cual presenta 2 cuadros "Linker libraries" y "Other linker options" como no sabía en cual de los dos debía colocar la orden probé en uno en el otro y en ambos :)
Luego menciona que con esto ya debería compilar el programa, pues ya me imaginaba que no funcionaría pues yo me preguntaba como sabría el compilador donde está la librería o es que acaso automáticamente la detecta sin importar donde ésta se encuentre.
Me mostró 11 errores debido a las 11 llamadas que se hacen de las funciones indicando que no se encuentran las referencias
Lineas más abajo dice "Aprovechar las opciones del enlazador"
hice lo que menciona moví el header y la librería a las carpetas include y lib respectivamente de la instalación, indica agregar la linea de encabezado <cadenas.h> en el programa principal y cambiar la configuración del linker que tenía "libcadenas.a" por "-lcadenas" compilo y resulta que ahora sólo me muestra 1 error.
Linking console executable: bin\Debug\usocadenas.exe
C:\Archivos de programa\CodeBlocks\MinGW\bin\ld.exe: cannot find -l-lcadenas
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
Pero sigue sin funcionar.
He revisado el código minuciosamente para ver si hay algún error pero no lo encuentro ni tampoco el compilador.
Por favor disculpen que sea tan explícito y haya hecho esto tan largo pero es que necesito ayuda y necesito comprender este tema de creación y uso de librerías
Espero me puedan ayudar.
Muchas gracias.
Nota: Todo lo estoy trabajando en C, es decir, he hecho los cambios pertinentes:
<cctype> por <ctype.h>
cout << por printf()
Valora esta pregunta


0