g ++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5"referencia indefinida" cuando se enlaza contra una biblioteca estática
Tengo el siguiente biblioteca estática llamado sdpAPI.a. Tengo problemas para intentar vincularlo con mi aplicación de prueba. Me pregunto si estoy haciendo algo mal. La biblioteca estática se ha creado con g ++;
Mi directorio es el siguiente:
/projects/unit_test/main.c
/projects/unit_test/sdp/inc/sdpAPH.h
/projects/unit_test/sdp/lib/sdpAPI.a
Mi código fuente es la siguiente:
#include <stdio.h>
#include "sdpAPI.h"
int main(void)
{
printf("----- TEST SDP ------\n");
try {
sdpSessionDescription sdp;
sdp.clear();
}
catch(...) {
printf("----- TEST FAILED --------\n");
return 0;
}
printf("------ TEST SUCCESSFULL ------\n");
return 0;
}
Y mi Makefile es la siguiente:
OBJECT_FILES = main.o
CC = g++
CFLAGS = -Wall -Wextra -Wunreachable-code -ggdb -O0
TARGET = sdp_demo
INC_PATH = -I sdp/inc
LIB_PATH = -L sdp/lib/sdpAPI.a
$(TARGET): $(OBJECT_FILES)
$(CC) $(CFLAGS) $(INC_PATH) $(LIB_PATH) $(OBJECT_FILES) -o $(TARGET)
main.o: main.c
$(CC) $(CFLAGS) $(INC_PATH) $(LIB_PATH) -c main.c
clean:
rm -f $(TARGET) $(OBJECT_FILES) *~
Estos son los errores del enlazador estoy obteniendo:
undefined reference to `sdpSessionDescription::sdpSessionDescription()'
undefined reference to `sdpSessionDescription::clear()'
undefined reference to `sdpSessionDescription::~sdpSessionDescription()'
undefined reference to `sdpSessionDescription::~sdpSessionDescription()'
Muchas gracias por todas las sugerencias,
He copiado la biblioteca estática a esto: libsdpAPI.y editó la siguiente línea LIB_PATH = -L sdp/lib -l sdpAPI. Sin embargo, sigo obteniendo la misma referencia indefinida. Gracias. – ant2009
@ ant2009, eso es porque el orden es importante. Ver la respuesta actualizada. – paxdiablo
Gracias, eso funcionó. Lo tenía en el orden incorrecto. Estoy tan acostumbrado a compartir que no sabía sobre el pedido con estática. Gracias. – ant2009