공유라이브러리(shared library) 관련

익명 사용자의 이미지

솔라리스환경에서 공유라이브러리를 만들려고 하는데요,

컴파일하려고,
cc -fPIC -c firstlib.c
라고했는데 -fPIC를 인식을 못하네요.

cc대신 gcc로 하면 컴파일이 됩니다만,
솔라리스 cc컴파일러에는 -fPIC대신 어떻게 해야 하나요?

익명 사용자의 이미지

www.sun.co.kr 문서자료 참조내용======================================================
=====================================================================================

SRDB ID 5825

개요 공유 개체/라이브러리 빌드 및 링크 방법
세부 설명

공유 라이브러리를 빌드하고, 새로 생성된 공유 라이브러리를 프로그램에 링크하고, 프로그램
을 실행하려면 어떤 절차를 사용해야 합니까?

해결 방법 요약
다음 예를 통해 이 과정을 알 수 있습니다.

/*temp.c*/
hello ()
{
printf ("Hello !\n");
}

/*hello.c*/
#include

main ()
{
hello () ;
}

이제 컴파일하고, 링크하고, 확인한 다음 실행하십시오.

1. 공유 개체 생성

% cc -pic -c temp.c
% ld -o libgreet.so.1.1 -assert pure-text temp.o

2. 코드 컴파일 및 링크

% cc -o hello hello.c -L/user/temp/scratch -lgreet

3. 실행 파일에 공유 라이브러리가 포함되었는지 확인

% ldd hello

4. 프로그램 실행

% setenv LD_LIBRARY_PATH {LD_LIBRARY_PATH}libgreet_path
(where libgreet_path is the path to the shared library)

% hello

"Programmer's Overview Utilities and Libraries" 1장을 참조하십시오.

적용 대상 운영 체제/SunOS 4.x