>> Read Reply from No. 39299 article  
RE: 유닉스용 라이브러리를 대체할 수 있는지

등록 2002-01-10 14:34:00     조회 1
이름 조준기    

		사용하신 소켓쪽 함수들의 man 페이지를 보시면 보통 맨 앞쪽에 그 함수들
이 어떤 라이브러리를 참조하는지 나옵니다.
 제 경우 HP-UX 에서 개발된 PRO*C 프로그램을 SUN Solaris로 포팅한 적이 있
는데, HP-UX에서 필요하지 않던 라이브러리들을 Solaris에서 추가로 요구하
는 바람에 컴파일러 스크립트를 고쳤었죠.(쉽계 말해서 libaio.a,
libthread.a 와 같은 라이브러리가 필요 없을수도 있고, 다른 라이브러리들
을 참조할 수도 있다는 말이죠) 요점은 O/S, C 라이브러리, 컴파일러 별로
특정 함수에 필수적인 라이브러리들이 바뀔 수 있다는 겁니다. man 페이지
를 참고하셔서 필요한, 또는 필요없는 라이브러리들을 발견하시면 컴파일 스
크립트의 -l<라이브러리이름> 등으로 주어지는 옵션을 고치시면 될것같습니
다.
 이렇게 하신 뒤 링크 또는 실행시킬 때 라이브러리를 찾지 못하는 현상이 생
기면 /etc/ld.so.conf 에 필요한 라이브러리들이 저장된 PATH를 주욱 적어주
시고(PATH별로 각각의 라인에 적으면 됩니다. 파일 열어보면 금방 알죠)
ldconfig 명령을 수행하면 다음부터는 정상적으로 동작할 겁니다. 리눅스에
서는 LD_LIBRARY_PATH 환경변수만 세팅한다고 해서 라이브러리를 참조하는
것은 아니고, 명령을 수행해야 하는 거죠.
 env_precomp.mk 파일은 PRO*C 의 작동에 필요한 각종 환경변수들과 실제 샘
플 프로그램 컴파일에 필요한 매크로 등이 들어 있습니다.
 사실 make 프로그램을 가지고 컴파일을 하면 컴파일된 오브젝트들의 버젼 내
지는 컴파일 시간을 체크하기 때문에 손쉽게 바이너리들을 엎어 치기가 힘들
죠 그래서 간단한 shell 스크립트를 작성하게 되는데, 손쉬운 방법은 다음
과 같습니다.
 PRO*C 샘플 프로그램들이 아마 $ORACLE_HOME/precomp/demo/proc 디렉토리에
있을겁니다. 컴파일용 make 파일인 demo_proc.mk도 같이 있구요.
    make -f demo_proc.mk sample2 > pc
 이렇게 하면 sample2.pc 를 컴파일하면서 실행되는 명령들 전체와 출력된 내
용이 전부 pc라고 하는 텍스트 파일에 저장됩니다.
이걸 열어서 proc 프리컴파일러를 호출하는 부분하고 gcc 로 컴파일/링크하
는 부분만 남기고 컴파일러들이 출력하는 메세지를 전부 지웁니다.
그 다음 sample2 를 $1 로 치환합니다. 이것을 저장하고 실행 퍼미션을 주
면 이 스크립트를 사용해서 (pc sample2 와 같이) 간단히 컴파일 할 수가 있
게 됩니다. 실제 개발할때는 make파일을 안쓰고 대부분 이런 컴파일러 스크
립트를 사용하죠.
 참고가 되셨길 바랍니다.
 : 안녕하세요...
:
: 지난번에 한번 질문을 올렸었는데... 좋은 대답에 감사합니다.
:
: 이번에 드릴 질문은 유닉스용 라이브러리에 대한 내용입니다...
:
: 저희 서버가 소켓통신과 오라클에 라이브러리를 참조하여 데몬이 되는
:
: 프로그램을 하나 돌리는데 (참고로 프로그램은 외부에서 짰슴) 이 프로그
램이
:
: 유닉스용 라이브러리들(Ex.libaio.a, libthread.a)와 같은 라이브러리들을
:
: 참조합니다.
:
: 다행히 gcc로 컴파일은 됩니다만 링크할 때 이런 라이브러리들이 없다는
에러가
:
: 발생합니다.
:
: 어떻게 해야 할까요...
:
: 리눅스에서 해결하지 못하면 Solaris 쪽으로 가야합니다...
:
: 시간이 촉박한 문제이니 고수분들의 답변바랍니다..
:
: 아울러 oracle의 env_precomp.mk라는 파일의 용도를 알고 싶습니다.
이름
암호


>> 관련글
39299 유닉스용 라이브러리를 대체할 수 있는지  지니  2002.01.10  ....
  답장 RE: 유닉스용 라이브러리를 대체할 수 있는지  조준기  2002.01.10  ....
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 7.95 초 ] 작업시간: [ 7.2 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1789501671
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.