Pequeña duda sobre GCC

Iniciado por snake_linux, 2 Septiembre 2015, 17:07 PM

0 Miembros y 1 Visitante están viendo este tema.

snake_linux

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.

someRandomCode

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.

kondrag_X1

lo mejor es hacerse un make para cada proyecto y listo.