g ++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5"niezdefiniowana odniesienia" podczas łączenia przed statycznej biblioteki
Mam następujący statycznej biblioteki o nazwie sdpAPI.a. Mam problem z połączeniem go z moją aplikacją testową. Zastanawiam się, czy robię coś nie tak. Biblioteka statyczna została zbudowana za pomocą g ++;
Mój katalog jest w następujący sposób:
/projects/unit_test/main.c
/projects/unit_test/sdp/inc/sdpAPH.h
/projects/unit_test/sdp/lib/sdpAPI.a
mój kod źródłowy jest taka:
#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;
}
A mój Makefile jest taka:
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) *~
Są to błędy łącznikowe jestem uzyskanie:
undefined reference to `sdpSessionDescription::sdpSessionDescription()'
undefined reference to `sdpSessionDescription::clear()'
undefined reference to `sdpSessionDescription::~sdpSessionDescription()'
undefined reference to `sdpSessionDescription::~sdpSessionDescription()'
Wielkie dzięki za wszelkie sugestie,
Skopiowałem bibliotekę statyczną do tego: libsdpAPI.ai edytował następujący wiersz LIB_PATH = -L sdp/lib -l sdpAPI. Jednak wciąż otrzymuję to samo niezdefiniowane odniesienie. Dzięki. – ant2009
@ ant2009, ponieważ zamówienie jest ważne. Zobacz zaktualizowaną odpowiedź. – paxdiablo
Dzięki, to zadziałało. Miałem to w złej kolejności. Jestem tak przyzwyczajony do wspólnego działania, że nie wiedziałem o zamówieniu ze statycznym. Dzięki. – ant2009