2015-01-21 2 views
0

그래서, xerces-c C++ 라이브러리를 사용하는 프로그램이 있습니다. 독립적으로 실행할 수있는 부분이 있기 때문에 프로그램을 실행할 때 라이브러리가 존재하지 않도록 라이브러리를 수정하려고합니다. dlopen()을 사용하여 라이브러리를로드하면서 gcc의 링커를 사용하여 컴파일 타임에 심볼을 해석 할 수 있습니까? 어쩌면 내가 뭔가 놓치고있어 xerces - C API는 dlsym(), 함께 사용하기가 매우 어려워 보인다. 그래서 나는 대안을 찾으려고 노력하고있다.dlopen과 함께 gcc의 링커를 사용할 수 있습니까?

+0

공유 라이브러리에 링크하거나 스텁에 연결하지 않고도 모든 기능에 쓸모없는 스텁을 작성하고 다시 컴파일하십시오. – BitTickler

+0

@ user2225104 xerces-c를 사용할 수 있기를 원한다면, 그냥 거기에 없을 때 박쥐에서 내 프로그램을 죽이는'ld'을 피하고 싶습니다. –

답변

3

이와 같은 경우 가장 쉬운 해결책은 프로그램을 두 부분 즉, xerces-c 종속성이없는 주 프로그램과 공유 라이브러리로 분할하는 것입니다. 그런 다음 dlopen 공유 라이브러리 xerces로드하고 그것을 사용합니다. 이 방법으로 기본적으로 자체 라이브러리 API를 정의 할 수 있습니다.

+0

이미 인터페이스를 처리하는 단일 클래스가 있습니다. xerces로, 아마도 이것은 최상의 해결책 일 것입니다. –

관련 문제