공유라이브러리를 만들때...
글쓴이: lminsung / 작성시간: 토, 2003/11/01 - 11:54오후
안녕하십니까 ?
답변이 없어서 질문 다시드립니다.
so(shared object)를 만들때 ar(아카이브)가 포함되었을 경우 gcc -fPIC...
처럼 fPIC 옵션을 줘야하는것으로 알고 있습니다.
근데 문제가 있습니다.
바이너리 설치시에는 아카이브를 사용할때는 이옵션을 주기가 쉽지가 않더군요..
질문드리겠습니다.
1.어떤 솔라리스에서는 -fPIC를 안줘도 so를 만들수 있더군요..
되는 솔라리스와 안되는 솔라리스의 차이는 (제생각이지만)
ld 가 차이가 나는 데 이때문에 되고 안되고하는것인지..
되는 솔라리스는 GNU ld를 사용하는것 같고 안되는 것은 솔라리스 디폴트를 사용하는 것 같더군요.. 혹시 제가 생각하고 있는것이 맞는지요..
인터넷에 찾아봐도 찾기가 쉽지가 않더라구요..
2. 만약 제가 틀렸으면 어떤 것을 바꿔줘야지 -fPIC를 안주고도 아카이브를 공유라이브러리(so)에 포함할 수가 있습니까??
방법을 가르쳐주십시오.이것 때문에 계속 헤매는 군요..
고수님들의 답변 부탁드립니다.
Forums:
참고하세요..
-fPIC 옵션은 gcc를 가지고 library를 만들때 사용하는 것입니다.
만약 Sun에서 제공하는 컴파일러를 가지고 만든다면 위의 옵션대신
다른 옵션이 필요합니다.
cc -o libfoo.so.1 -K pic -xCC foo.c
이렇게 하면 shared library가 만들어 질것입니다.
훔. 오래 전에 해서 잘 기억이 안나서 떱.. ㅠ.ㅠ
자세한 사항은 다음 링크를 참조해 보심이 좋을 듯 합니당~
http://docs.sun.com/db/doc/816-7777?l=ko&q=shared+library
아마 다른 ar(아카이브)를 포함하여 공유라이브러리를 만드신 다면
compile 옵션에 몇 개의 다른 옵션이 들어갈 것입니당.
-z -h 옵션등이 있었던 것 같은데.. 에궁 기억이 잘~
위의 URL을 참조해 보세용..
그럼. 총총총~
댓글 달기