[완료]shared library를 compile하던 중 linker input file unused because linking not done 같은 에러가 발생합니다.
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
아무리 해봐도 답이 없어서 문의 드립니다.
도와 주세요~
-c 옵션을 빼보세요
-c 옵션을 빼보세요
생산적인 댓글을 달자
아... 죄송합니다. 제 답글의 본 뜻은 -c 옵션이
아... 죄송합니다.
제 답글의 본 뜻은 -c 옵션이 지정된 이상 컴파일만 수행될 뿐 링크는 이루어지지 않는다는 뜻이었고, 단순히 -c를 뺀다고해서 문제가 해결되지는 않습니다.
생산적인 댓글을 달자
%.o:%.c rule에있는 $(LDFLAGS)을
%.o:%.c rule에있는 $(LDFLAGS)을 빼고 실행하세요. 컴파일 옵션이 들어가야하는 곳에 링크 옵션이 들어가 있습니다.
조언감사드립니다.
조언 감사드립니다.
AA
AA
댓글 달기