LDFLAG 의미좀 알려주세요..흑흑..
글쓴이: chxooi / 작성시간: 월, 2009/06/29 - 5:28오후
RAMBO_TOP := $(shell cd ../; pwd)
LDFLAGS := -lrambo -L$(RAMBO_TOP)/bin -lpthread -lm
Flag 의미좀 알려주세요....
1) 위의 LDFLAG 에서 -lrambo 가 하는 역할이뭔가요?
2) 위의 LDFLAG 에서 -lpthread 의 의미는 ?
3) 위의 LDFLAG 에서 -lm 의 의미는요?
4)
맨앞의 -lrambo 가 있으면 링크되는 파일들이 없다고 주루룩 에러가 뜹니다.
librambo.so: undefined reference to `TTT_Close'
librambo.so: undefined reference to `AAAA_Close'
librambo.so: undefined reference to `XXX_Close'
librambo.so: undefined reference to `ZZDS_Close'
librambo.so: undefined reference to `BREPD_Close'
librambo.so: undefined reference to `BZDDDD_Close'
-lrambo 있고없고에 따라 이 에러가 나고 안나고 하는데...원인이 뭘까요?
Forums:
LDFLAG는 (보통 Makefile
LDFLAG는 (보통 Makefile 내에서) ld(링커)에 줄 옵션을 모아두는 변수라고 보시면 됩니다.
따라서 LDFLAG는 곧 링커 옵션이 되겠지요.
-l은 링크할 라이브러리, -L은 라이브러리를 찾을 디렉터리를 추가로 지정하는 옵션입니다.
-lm은 수학 라이브러리, -lrambo는 librambo라던지 그런 라이브러리가 되겠지요.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
감사합니다.그런데...
LDFLAGS := -lrambo -L$(RAMBO_TOP)/bin -lpthread -lm
이렇게쓰면 위에말한대로
librambo.so: undefined reference to `TTT_Close'
librambo.so: undefined reference to `AAAA_Close'
librambo.so: undefined reference to `XXX_Close'
librambo.so: undefined reference to `ZZDS_Close'
librambo.so: undefined reference to `BREPD_Close'
librambo.so: undefined reference to `BZDDDD_Close'
이런 에러가 뜨고
LDFLAGS := -L$(RAMBO_TOP)/bin -lpthread -lm 이것을 쓰면 아무이상없을까요? (-lrambo 만생략)
rambo 라는 라이브러리 안에 참조할 심볼이 없네요.
$(RAMBO_TOP)/bin 안에 있을 librambo.so 에서
레퍼런스 심볼이 정의되어 있지 않다는 내용입니다.
만약 librambo 라이브러리가 pthread나 math 라이브러리의 함수를 사용한다면,
LDFLAGS의 순서를 바꿔주십시오.
LDFLAGS := -L$(RAMBO_TOP)/bin -lpthread -lm -lrambo
처럼요...
====
하나는 전부, 전부는 하나
반대로 말씀하신 것
반대로 말씀하신 것 같습니다.
library A에서 library B의 심볼을 참조할 경우
-lA -lB로 순서를 지정해야 하는 것으로 알고 있습니다.
아, 참. 그렇네요.
감사감사. 요새 정신이 없어요.
====
하나는 전부, 전부는 하나
댓글 달기