c++ 동적 링크 질문드려요...

goofy2의 이미지


동적 라이브러리 (.so, .sl)등의 파일을 dlopen, dlsym 함수들을 사용하여 프로그램을 만드는 것은 아는데...

dlsym으로 함수를 얻어오기 위해서는 라이브러리(.so)에서 extern "C"를 해줘야 하자나요...

그런데 이번에 제가 쓰려는 라이브러리가 Class 로 되어 있는 라이브러리에요..ㅠㅠ 또한 라이브러리를 재컴파일을 못하는 상황이구요...

Class로 되어있는 함수를 dlopen, dlsym으로 불러올 수 있나요?

아니면 Class로 되어있는 라이브러리를 동적으로 불러 쓰는 다른 방법은 없을까요?/

인터넷으로 조금 찾아보니 Dynamic link로 컴파일할때 어떤 옵션을 사용하면 프로그램 실행 시 LD_LIBRARY_PATH에서 찾아쓴다는거 같은데..

정확히 어떤 의미인지요..ㅠ

mirheekl의 이미지

다른 쉬운 방법을 못찾으실 경우, C++로 된 래퍼 라이브러리를 하나 만들어서, extern C로 익스포트되는 래퍼 함수들을 만들고 그 안에서 자유롭게 실제 클래스 라이브러리를 링크하고 사용하시면 됩니다.

요컨대 입출력만 C형태로 맞춰주면 그만.

--