shared library 사용에 관하여...
글쓴이: khk / 작성시간: 목, 2003/07/24 - 10:33오전
user의 directory에 shared library를 생성하였습니다.
이를 libmylib.so.1.0.1 로 잡았구요
ldconfig하여 libmylib.so.1 -> libmylib.so.1.0.1 soname을 생성하였습니다.
이 라이브러리를 사용하는 코드를 컴파일 할 경우
gcc -o myprg myprg.c -lmylib -L.
이렇게 컴파일 하려 하는데 다음과 같은 에러가 발생합니다.
/usr/bin/ld: cannot find -lmylib
collect2: ld returned 1 exit status
이렇게 에러가 발생합니다. shared library를 제대로 찾지를 못하는 것 같은데... 이유가 무엇인지요?
gcc -o myprg myprg.c -lmylib.so.1 -L.
해도 마찬가지네요...
(소스코드와 shared library 모두 current dir에 있습니다.)
LD_LIBRARY_PATH도 잡아놓긴 했지만 이건 실행시간에 관여하는 문제인것 같구...
지금은 컴파일타임때 문제입니다.
Forums:
gcc -o myprg myprg.c libmylib.so.1이런식으
gcc -o myprg myprg.c libmylib.so.1
이런식으로 하니 컴파일이 되긴 되네요.
이 방법이 원래 맞는건가요?
[quote="khk700"]gcc -o myprg myprg.c lib
/etc/ld.config
라는 파일에 공유라이브러리 들이 있는 디렉토리를 추가해 주시면 됩니다.
링크할때는 ld.config 에 있는 디렉토리를 참고 하거든요...
답변감사합니다./etc/ld.so.conf 를 말씀하신 것 같은데요
답변감사합니다.
/etc/ld.so.conf 를 말씀하신 것 같은데요
여기에 넣어줘도 같은 에러가 발생합니다...
그것은...
/etc/ld.so.conf 편집후에
/sbin/ldconfig
를 해보시죠.답변 주신 두 분께 감사드립니다.다음과 같이 해결하였습니다.문
답변 주신 두 분께 감사드립니다.
다음과 같이 해결하였습니다.
문제는 링커가 참조하는 이름을 별도로 셋팅을 안해줬기 때문이네요.
ln -sf libmylib.so.1 libmylib.so
이렇게 링크를 하나 만들어 주니 mylib를 제대로 인식합니다.
댓글 달기