동적 라이브러리 관련 질문드립니다...
글쓴이: pdjj14 / 작성시간: 화, 2005/12/06 - 4:31오후
사정상 소스 코드는 못 올리구요...ㅠㅠ...
abc.h 에 선언된 A 라는 함수가 있습니다...
abc.c 에 정의가 되어 있구요...
a.c 에서 abc.h 를 인클루드해서 A 를 실행시키면 문제가 없이 잘 돌아갑니다...
하지만, b.c 를 만들어서 그 안에서 abc.h 를 인클루드해서 A 를 사용하게 하고 b.c 를 동적 라이브러리로 만듭니다...(libb.so.0.0.0 이라고 하겠습니다...)
test.c 에서는 A 를 사용하는데 abc.h 를 인클루드 안 하고 컴파일 할 때 libb.so.0.0.0 을 링크해서 컴파일 합니다...
이럴 경우, test.c 의 A 를 실행시키면 세그멘테이션 폴트가 생깁니다...
도대체 왜 이러는지 모르겠네요...
동적 라이브러리의 과정을 거치면서 문제가 생기는 것 같은데...ㅠㅠ...
아시는 분!!!
저 좀 구해 주세요~~~
Forums:
동적 라이브러리를 로딩하는 path가 설정되어 있지 않아서 그럴겁니다.
동적 라이브러리를 로딩하는 path가 설정되어 있지 않아서 그럴겁니다.
리눅스라면 ldconfig를 이용해서 해당 so의 path를 등록하면 됩니다.
그 부분은...
이미 추가를 해 줬습니다...
여러 함수들이 있는데 특정 함수에서 그러는 것 같네요...
동일한 헤더파일에 선언된 녀석들인데...
왜 그러는지 도통 모르겠습니다...ㅠㅠ...
b.c를 동적 라이브러리가 아니라 정적 라이브러리로 만들어서 테스트 해보
b.c를 동적 라이브러리가 아니라 정적 라이브러리로 만들어서 테스트 해보시기 바랍니다.
정적 라이브러리로 했을때 정상 동작한다면, 동적 라이브러리 path 문제입니다.
Re: 동적 라이브러리 관련 질문드립니다...
제 생각에는 dlopen 을 사용한 경우도 아닌 것 같고,
공유 라이브러리 경로 문제라면 seg fault 나기 전에
공유 라이브러리를 찾을 수 없다는 메시지가 나왔을 것 같은데요...
예상컨데, 그 함수의 버그가 아닐런지요? 그 함수를 아무 것도
하지 않는 빈 함수로 만들어도 호출하면 seg fault 가 나는지
확인해보세요.
Orion Project : http://orionids.org
댓글 달기