안녕하세요. HP-UX cc 컴파일러의 링크 옵션 질문 드립니다.
OS : HP-UX ****** B.11.23 U ia64
CC : cc: HP aC++/ANSI C B3910B A.06.05
문제 상황
liba.a libb.a 각각의 아카이브에서 상호 참조를 하고 있을때 gcc 에서는 아래와 같이 라이브러리를 그룹핑 해주면 링크가 성공하는 것으로 알고 있습니다. 그런데 지금 사용하고 있는 시스템과 컴파일러는 hp-ux에 cc를 사용하고 있는데요. 1시간 가량 검색을 해보고 man page를 봐도 gcc와 비슷한 기능을 하는 옵션일 없는 것(제가 영어가 조금 아니 많이 부족해서 모르고 지나쳤을 수도 있습니다.) 같습니다.
-Xlinker --start-group la.a lb.a -Xlinker --end-group
혹시 알고 계시는 분은 알려주셨으면 좋겠습니다.
감사합니다.
댓글 6
-
백창우
2011.04.07 03:02
-
조운현
2011.04.07 09:46
cc -o test test.c -v
/usr/ccs/bin/ld -o test -u___exit -umain test.o -lc <-- 컴파일 과정중의 일부/usr/ccs/bin/ld link editor, ld(1) <-- man page의 일부
====================================================================
ld가 사용되고 있습니다.
멘페이지를 살펴보더라도 -( 옵션과 -) 옵션은 없었습니다.
오늘아침9시부터 살펴보고 있는데요. 못찾겠네요. ㅜ.ㅜ
아무튼 감사합니다.
-
백창우
2011.04.07 15:01
ar -x 로 아카이브 푸시고 해보세요.
해결할 수 있는 방법은 여러가지가 있습니다.
-
조운현
2011.04.08 16:12
ar -x 로 아카이브 푸시고 해보세요.
해결할 수 있는 방법은 여러가지가 있습니다.
위 말은 잘 이해를 못하겠습니다. 여러개의 아카이브 파일을 한디렉토리에 모두 풀어놓고(모든 object 파일을 한 디렉토리에 저장되게꼬롬) Makefile에서 실행 바이너리를 생성하는 리스트에서 object파일이 풀려져 있는 디렉토릴 참조해서 함께 링킹하라는 말씀이신지요? 잘 이해를 못해서요 ㅜ.ㅜ
LIB=-la -lb 실행 파일 : 종족 파일 cc 여러 옵션들 $(LIB) $(LIB)
위처럼 하믄 라이브러리 의존성 문제는 발생하지 않으나. 왠지 기분 이상해지네요.아무튼 답변 감사합니다.
-
조운현
2011.04.12 09:41
one-pass, two-pass linker가 무엇인지 확인해볼 수 있는 계기가 되었습니다. 감사합니다.
-
백창우
2011.04.08 23:28
그냥 위처럼 하세요. 1-pass linker인 ld에서는 어쩔수 없는 일입니다.
.
-( 옵션과 -) 옵션은 있는지요?
그리고 링커로써 무엇을 사용하십니까?