[완료]shared library를 compile하던 중 linker input file unused because linking not done 같은 에러가 발생합니다.

kissvond의 이미지

shared library를 compile하던 중 linker input file unused because linking not done 같은 에러가 발생합니다.
/////////////////////////// Makefile ////////////////////////////////////
CROSS_PATH=/opt/buildroot-gcc342/bin/
CROSS=mipsel-linux-
CC=$(CROSS_PATH)$(CROSS)gcc
STRIP=$(CROSS_PATH)$(CROSS)strip
CFLAGS=-fPIC -Wall -I../main_control -g -L.

SRCS=cJSON.c\
base64.c\
#OBJS=$(SRCS:.c=.o)

OBJS=cJSON.o\
base64.o\

TARGET=libcjson.so

all:$(OBJS)
$(CC) -shared -Wl,-soname,$(TARGET) -o $(TARGET) *.o
$(STRIP) $(TARGET)

%.o:%.c
$(CC) $(CFLAGS) $(LDFLAGS) -c -o $@ $<

doc:
doxygen -s ./doxygen.conf >/dev/null 2>&1

clean:
rm -f $(OBJS) $(TARGET)
rm -rf doc

이렇게 컴파일을 하면 다음 과 같은 에러가 발생합니다.

///////////////////////// error////////////////////////
/opt/buildroot-gcc342/bin/mipsel-linux-gcc -fPIC -Wall -I../main_control -g -L. -Wl,--fatal-warnings -L/home/mkkim/work/wifi-Ralink/SDK/RT288x_SDK/source/lib/lib -Wl,--fatal-warnings -L/home/mkkim/work/wifi-Ralink/SDK/RT288x_SDK/source/lib/lib -c -o cJSON.o cJSON.c
mipsel-linux-gcc: --fatal-warnings: linker input file unused because linking not done
mipsel-linux-gcc: --fatal-warnings: linker input file unused because linking not done

아무리 해봐도 답이 없어서 문의 드립니다.
도와 주세요~

sohn9086의 이미지

-c 옵션을 빼보세요

생산적인 댓글을 달자

sohn9086의 이미지

아... 죄송합니다.
제 답글의 본 뜻은 -c 옵션이 지정된 이상 컴파일만 수행될 뿐 링크는 이루어지지 않는다는 뜻이었고, 단순히 -c를 뺀다고해서 문제가 해결되지는 않습니다.

생산적인 댓글을 달자

익명 사용자의 이미지

%.o:%.c rule에있는 $(LDFLAGS)을 빼고 실행하세요. 컴파일 옵션이 들어가야하는 곳에 링크 옵션이 들어가 있습니다.

kissvond의 이미지

조언 감사드립니다.

익명 사용자의 이미지

AA