TAG Clouds

New Postings

  • 받아도 되고 받지않아도 될때 받는 것은 청렴을 손상시키고, 주어도 되고 주지 않아도 될때 주는 것은 은혜를 손상시키며, 죽어도 되고 죽지않아도 될때 죽는 것은 용기를 손상시키는 것이다.
    - 맹자


프로그래밍
2005.09.29 10:50

라이브러리 만드는법

조회 수 9807 추천 수 9 댓글 0
1 정적 라이브러리(.a)
사용하기
ar rcs my_library.a file1.o file2.o gcc -o test1 test.o -lmy_library -L./

2 공유 라이브러리(.so)
만들기
gcc -fPIC -c a.c gcc -fPIC -c b.c gcc -shared -soname,libmystuff.so.1 -o libmystuff.so.1.0.1 a.o b.o -lc

사용방법
gcc -o test1 test.o -lmy_library
UNIX ( Linux, Solaris)
LD_LIBRARY_PATH
HU-UX
SHLIB_PATH
AIX
LIBPATH
so debug

$ export LD_DEBUG=files $ test.exe # 라이브러리를 다룰때 파일과 라이브러리의 동작을 보여주고, # 어떤 의존성이 발견되었고, 어떤 SOs(sonames)가 어떤 순서로 # 로드되었는지 말해준다. # LD_DEBUG를 bindings로 설정하는 것은 심볼제한에 대한 정보를 # 보여주고, libs에 설정하는은 것은 라이브러리 탐색경로에 대해서 보여주고, # version으로 설정하는 것은 버전 의존성을 보여준다. $ export LD_DEBUG=help <-- 도움말 출력

3 참조
관련 링크
http://kldp.org/HOWTO/html/Program-Library-HOWTO/index.html


------------------------------------------------------------------------------------------------

라이브러리 파일을 만들기 위해서는 먼저 오브젝트 파일을

생성해야 한다

예를 들어 a.c  b.c  두파일이 있다면.

gcc -c a.c b.c   이렇게 하면 a.o b.o 가 생긴다

이후 ar 명령어를 이용하면 라이브러리 파일이 생성되는데

.a 라는 라이브러리 파일 확장자 명으로 생성하기  위해서 r옵션을 사용한다

ar r libmy.a a.o b.o

이렇게 하면 libmy.a 파일이 생성된다

그리고 라이브러리 파일에 목록을 추가해야 하는데 다음과 같이

s 옵션을 주어 ar 명령어를 실행하면 라이브러리 파일이 생선된다

ar s libmy.a



--------------------------------------------------------------------------------


ar t libmy.a  라는 명령을 실행하면

a.o

b.o

이렇게 라이브러리 파일 내용을 보여준다



--------------------------------------------------------------------------------


-l 옵션

기능 : 표준 라이브러리 가 아닌 라이브러리를 사용할 때 지정해 준다

사용법 :gcc 소스파일이름 -l라이브러리이름

위에서 라이브러리 파일 libmy.a 의 라이브러리를 쓰고 싶을때는

                         libmy.a

lib 와 .a 를 제외한 my만쓴다

예) gcc ex.c -lmy

그런데 링커가 라이브러리를 찾을때는 표준라이브러리 파일의 디렉토리로

찾기 떄문에 자기가 만든 라이브러리디렉토리 는 찾지 못한다

이것은  -L 옵션을 사용해 해결할 수 있다

-L 옵션

-L 옵션

기능 : 사용할 라이브러리의 위치를 지정한다

사용법 : gcc 소스파일이름 -L라이브러리위치

예 ) gcc ex.c -lm -Lmylib

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
202 성가대 음정이란 file Dreamy 2005.08.15 10903 43
201 성가대 16배음에 관하여. file Dreamy 2005.08.18 10819 20
» 프로그래밍 라이브러리 만드는법 Dreamy 2005.09.29 9807 9
199 일반 합기도 기본정신 file Dreamy 2005.10.17 7508 21
198 인터넷 ietoy 문맥메뉴가 정상작동 하지 않을 경우 대처법 Dreamy 2005.12.19 10682 6
197 프로그래밍 파일 암/복호화 프로그램, Encryptist. 1 file Dreamy 2005.11.29 12004 18
196 프로그래밍 CxImage Library 5.99 file Dreamy 2005.12.05 10561 23
195 인터넷 가져다 쓸수 있는 시계 태그 Dreamy 2005.12.22 10178 4
194 프로그래밍 프로그래밍용 글꼴 file Dreamy 2006.04.03 9774 16
193 성당 유다 복음 관련 기사(원문 포함) file Dreamy 2006.04.12 6223 13
192 일반 게임이론 길라잡이 file Dreamy 2006.05.01 9184 44
191 인터넷 HTML 태그 사전 file Dreamy 2006.06.29 10605 48
190 일반 영화 씬 시티(sin city) 대본 1 file Dreamy 2006.07.13 9501 61
189 프로그래밍 C language FAQ. file Dreamy 2006.07.14 9136 8
188 일반 바오밥나무 발아법(마다가스카 종) Dreamy 2006.08.16 8706 7
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 11 12 ... 17 Next ›
/ 17

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5