Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[PROGRAMACION] C y librerias (abierto)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
flaab_0n
Guru
Guru


Joined: 27 Dec 2003
Posts: 470
Location: /España/Madrid/Alcorcon

PostPosted: Mon Oct 16, 2006 7:53 am    Post subject: [PROGRAMACION] C y librerias (abierto) Reply with quote

Hola a todos

Vereis necesito programar en Ansi C y me había puesto a ello. Tengo instalados Gcc y GlibC. La cosa es que cargo la libreria math.h por ejemplo y aun asi no puedo utilizar las funciones de esa librería. El compilador alega que no estan definidas. Observar el siguiente codigo:

Code:


// Programa que recibe coefiecientes de una ecuacion de 2do grado y devuelve valores de x1 y x2

#include <stdio.h>
#include <math.h>

//#############################################
//# EXISTE YA PERO VAMOS A HACERNOS LA FUNCION DE ELEVAR A X
//#############################################

// Importante decir que tipo de dato entra sobre todo de cara a los bucles
float potencia(float n1, int n2) {
   
   float res; // Resultado que devuelve
   int i; // Controlador de bucle
   
      // Si el valor es mayor que dos, hacemos el bucle
      if(n2 > 1) {
         
         // Antes de iniciar el bucle, asignamos n1 a resultado.
         res = n1;
         
         // Bucle for. Por cada vez elevada multiplicamos lo anterior por la base
         for(i=2; i<=n2; i++) {
      
         res = res * n1;
      
         }
      
      } else { res = n1; } // Si es elevado a 1, devolvemos n1.
         
         
   return res;
   
   
} // Fin de funcion




main()
{
   
   int vx;
   int vy;
   int vz;
   float vx1;
   float vx2;
   double aux;
   
   // Leemos
   printf("Introduca coeficiente a: ");
   scanf("%i", &vx); //
   printf("\n");
   
   // Leemos
   printf("Introduca coeficiente b:  ");
   scanf("%i", &vy); //
   printf("\n");
   
   // Leemos
   printf("Introduca coeficiente c: ");
   scanf("%f", &vz); //
   printf("\n");
   
   
   // Operamos. [b]EL ERROR ES AQUI[/b]
   aux = sqrt(potencia(vy,2) - (4* vx * vz));
   
   // Seguimos operando
   vx1 = (-vy) + aux / (2*vx);
   
   printf("Valor de X1: %f \n", vx1);
   
   // Seguimos operando
   vx2 = vy + aux / (2*vx);
   
}



El compilador me peta, insulta lo siguiente:

Code:
flaab@localhost ~/Desarrollo/C $ gcc p10_ecuacion.c
/tmp/ccup1qsS.o: En la función `main':
p10_ecuacion.c:(.text+0x100): referencia a `sqrt' sin definir
collect2: ld devolvió el estado de salida 1


Cuando sqrt es una funcion de la librería Math. Me pasa con todas las funciones de math.h. ¿Alguien sabría darme alguna idea?

Gracias.
_________________
[ _Flaab_0n ]

www.quinielalosases.com
Back to top
View user's profile Send private message
v1ll4
n00b
n00b


Joined: 26 Feb 2005
Posts: 24

PostPosted: Mon Oct 16, 2006 8:25 am    Post subject: Reply with quote

Debes añadir "- lm".

Code:

villa@villa-portatil pruebas $ vi ecuacion.c
villa@villa-portatil pruebas $ gcc -lm ecuacion.c -o ecuacion
villa@villa-portatil pruebas $ ./ecuacion
Introduca coeficiente a: 4

Introduca coeficiente b:  2

Introduca coeficiente c: 1

Valor de X1: 1446.154663


Lo del resultado ya lo mejoras tú. :lol:

Saludos
_________________
In Ballantines we trust
Back to top
View user's profile Send private message
bontakun
Apprentice
Apprentice


Joined: 25 Jan 2005
Posts: 234
Location: Temuco - Chile

PostPosted: Wed Oct 18, 2006 3:00 am    Post subject: Reply with quote

disculpa... no viene al caso, como tampoco mehe informado del tema.. pero = dejo lapregunta porsiaca...

-lm q hace exactament...???

gracias
Back to top
View user's profile Send private message
Ferdy
Retired Dev
Retired Dev


Joined: 04 May 2002
Posts: 483
Location: España

PostPosted: Wed Oct 18, 2006 5:40 am    Post subject: Reply with quote

Enlaza con la librería compartida libm. Que casualmente es 'libmath' :)

-l (enlazar) m (libm)
-l (enlazar) ncurses (libncurses)
...

- ferdy
Back to top
View user's profile Send private message
bontakun
Apprentice
Apprentice


Joined: 25 Jan 2005
Posts: 234
Location: Temuco - Chile

PostPosted: Fri Oct 20, 2006 5:52 am    Post subject: Reply with quote

vale gracias... :D

con esto soluciono algunos errores en mi practica de programacion XD
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum