5.3. 시스템 라이브러리를 필요로 하는 모듈

모듈을 작성하는 건 응용을 작성하는 것과 상당히 비슷하다. 올바른 동작을 위해 pam_sm_authenticate() 같은 "합의된 훅"을 제공해야 하는데, 일반 프로그램의 main() 함수에 해당하게 된다.

어떤 표준 시스템 라이브러리에 링크를 하고 싶을 수도 있다. 일반 프로그램을 컴파일할 때와 마찬가지로 모듈에서도 할 수 있다. 공유 모듈 오브젝트를 생성할 때 원하는 라이브러리에 대해 -lXXX 인자를 붙여 주기만 하면 된다. 가령 모듈이 dlopen() 될 때 libwhatever.so 라이브러리에 링크되게 하고 싶다면 다음처럼 하면 된다.

% gcc -shared -o pam_module.so pam_module.o -lwhatever