티스토리 뷰

늘 까먹기 쉬운 .so 파일 .a 파일 컴파일

.so 파일 만들 때 주의점
1. -fPIC -shared 혹은 -KPIC 등을 사용하여 재배치 가능한 obj 파일을 생성하자.
2. 컴파일되었다고 좋아하지 말고, nm -C | grep UNDEF 해서 표준 라이브러리가 아닌 것이 없도록 처리해야 할 것이다. nm 은 솔라리스에서는 /usr/ccs/bin 에 있다.
   header 파일만 있어도 .so 파일을 생성할 수 있다.
3. ld 쓸 경우는 -dy 옵션을 잊지 말고, 가능하면 libtool(참조) 을 써서 전자동 처리를 하도록 하는게 편하다.

.a 의 경우
1. -fPIC, -KPIC 등을 써서 재배치 가능하게 obj 를 만들 필요가 있다.

일단 다 만들고 나서 안정성이 확인되었을 경우에는 strip 등을 써서 디버깅 정보를 지워주는 센스도 필요하다.

별도로

멀티스레드 컴파일 옵션
 multithread 의 경우 -mt 옵션(거의 공통)

비트별 컴파일 옵션
솔라리스( CC )
  최적화 옵션 -xO3
  32비트 -xtarget=ultra2 -xarch=v8plusa
  64비트 -xtarget=ultra2 -xarch=v9 혹은 -xarch=v9b
리눅스( gcc )
  32비트 -m32
  64비트 -m64
HP/UX( aCC )
  추후... 기억이 안나넹..
AIX ( xlC )
  추후... 기억이 안나넹..


간단하게 설명한 사이트 갈무리

아랫 부분은 2011-03-29 추가

참고 URL
 

HP/UX 참고

댓글