Hola a tod@s, resulta que algunas veces, para que al compilar se reconozcan ciertas librerías necesito hacer un -l(libreria) si no no me la reconoce, por ejemplo, al compilar algo que usa math.h sería:
gcc pruebas.c -o pruebas -lmath
O si uso threads:
gcc pruebas.c -o pruebas -lpthread
¿ Por que tengo que linkearla si ya la defino con include ?.
Saludos.
No todas las librerias definen en los .h las funciones, y en ese caso hay que linkearlas..
La mayoria de las funciones intrinsecas estan definidas, pero el resto se definen como externas, y solo se te da el prototipo/firma de la misma para que puedas usarla comodamente, en vez de tener que cargarla desde la libreria dinamica/estatica manualmente y luego de usarla tener que liberarla.
lo mejor es hacerse un make para cada proyecto y listo.
Gracias :)