2012-06-05 2 views
5

내 프로그램으로 LD_PRELOADed 될 공유 객체 라이브러리를 만들고 있습니다. 그 공유 라이브러리에서, 나는 또한 내 프로그램의 일부 변수를 사용하고 싶다. 그러한 변수를 선언하는 방법은 무엇입니까? 공유 객체 라이브러리는 내 프로그램과 별도로 컴파일됩니다.공유 객체 라이브러리에서 변수를 공유하는 방법

답변

2

예. 라이브러리에 액세스 할 수있는 프로그램의 심볼 테이블을 열려면 프로그램을 --export-dynamic과 연결해야합니다. 사용 가능한 기호를 정확히 제어하고 연결에 libtool을 사용하려면 -export-symbols-regex과 같은 매개 변수를 사용하여 사용할 수있는 기호를 지정할 수 있습니다. 프로그램이로드 될 때 라이브러리에 필요한 기호를 사용할 수 없으면 정의되지 않은 기호로 실패합니다. 일부 플랫폼에서는 약간 다른 링크 플래그 (특히 Windows)가 필요합니다. 아직 사용하지 않으려면 libtool을 사용하는 것이 좋습니다.