여러 다른 곳에 위치한 라이브러리를 링크하다 보면 참조 순서가 중요한 경우가 있습니다.
간단한 예를 들면 gcc -lm -ldl -Lx 라고 하면 libm.a, libdl.a 그다음 x경로에서 라이브러리를 찾습니다.
그런데 저 libm이나 libdl을 그 뒤의 object 파일이 참조한다면 이것은 제대로 된 순서가 아닙니다.
가장 의존성이 높은 라이브러리를 왼쪽에 놓고 차례로 해당 의존성을 해결해가는 순서로 배치해야 합니다.
그러므로 위와 같은 경우 의존성이 존재한다면 gcc -Lx -lm -ldl 같은 순서로 바꿔줘야 unknown symbol error 같은 링커 오류를 피할 수 수 있습니다.
'IT' 카테고리의 다른 글
dereferencing pointer to incomplete type 오류시 체크 사항 (0) | 2018.10.12 |
---|---|
[C] 배열을 선언과 정의를 다른 파일에서 사용할 때 (0) | 2015.08.15 |
devhelp 설치 및 사용하기 (0) | 2015.04.09 |
커널 매뉴얼(manpage) 만들기 (0) | 2015.04.08 |
[오류] Enable multithreading to use std::thread: Operation not permitted (0) | 2015.03.16 |