라이브러리 패스 링킹 순서 문의
글쓴이: saehymkldp / 작성시간: 수, 2016/06/08 - 4:38오후
안녕하세요? 질문 좀 드립니다.
linux(centos)에서 c 프로그래밍을 하고 있는데요.
my_program에 gcrpyt라는 쉐어드라이브러리를 링크해야 하는데 gcrypt는 OS에 이미 패키지로 설치되어 있습니다.
(디폴트설치 /lib64 --> /usr/lib64)
그런데 버젼이 낮아서 새로나온 버전으로 업그레이를 하고 이 새 버전을 링크하려고 합니다.
먼저 gcrypt 패키지를 yum으로 삭제하고 새 버전을 소스코드로 설치하려 했는데
gcrypt는 워낙 dependency가 많아서 삭제가 안되더라구요~~~(yum remove하면 error발생)
그래서 /usr/local로 prefix를 두고 새버젼을 소스컴파일하려 하는데
gcc myprogram에서 -L/usr/local/lib64 -lgcrypt하면 새로운 버젼의 라이브러리와 링크를 하게 될까요?
아니면 ld.so.conf / LD_LIBRARY_PATH에 등록된 PATH를 먼저 찾아서 기존 라이브러리를 링크할까요??
링크 순서가 우선 궁금하구요~~~ my_program에 새버젼의 라이브러리를 링크하는 방법을 알고 싶습니다.
고수님의 도움을 바랍니다.감사합니다.
Forums:
음 ..
링크 할 때에는 먼저 -L 에 정의된 경로에서 찾을 꺼고, 실행할 때에는 먼저 LD_LIBRARY_PATH 에서 찾을 겁니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
빌드시에 -rpath 옵션으로 라이브러리 경로를 고정
빌드시에 -rpath 옵션으로 라이브러리 경로를 고정 시킬 수도 있습니다.
댓글 달기