댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
New Postings
New Comment
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
사용하기
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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 | 추천 수 |
---|---|---|---|---|---|---|
110 | 수업 | 리눅스 명령어 요약 | ★웅제★ | 2003.06.22 | 9927 | 182 |
109 | 게임 | 롤리폴리캐논 2 | Dreamy | 2009.07.05 | 10160 | 0 |
108 | 성가대 | 라틴어 발음의 모든 것 | Dreamy | 2016.06.03 | 2422 | 0 |
107 | 성가대 | 라틴어 발음법 1 | Dreamy | 2008.06.04 | 18204 | 14 |
106 | 성당 | 라틴어 미사통상문 | Dreamy | 2015.10.15 | 2156 | 0 |
105 | 성가대 | 라틴어 미사곡 해설 2 | Dreamy | 2009.03.13 | 13146 | 0 |
» | 프로그래밍 | 라이브러리 만드는법 | Dreamy | 2005.09.29 | 9500 | 9 |
103 | 일반 | 떡볶이 만들기 | Dreamy | 2020.09.13 | 1281 | 0 |
102 | 취미 | 드리미의 여섯가지 기타 스케일 연습곡 | Dreamy | 2009.07.27 | 17507 | 0 |
101 | 인터넷 | 도움이 될만한 사이트 모음 (즐겨찾기 하고 자주 가보는사이트) | Dreamy | 2010.02.11 | 14148 | 0 |
100 | 인터넷 | 도움되는 사이트 모음(2015 봄) | Dreamy | 2015.04.07 | 2384 | 0 |
99 | 게임 | 더스트(파우더) 게임 - 대단! 1 | Dreamy | 2009.04.03 | 9887 | 0 |
98 | 일반 | 다이어트 자극글 | Dreamy | 2013.11.06 | 0 | 0 |
97 | 성당 | 니케아 신경 PPT | Dreamy | 2013.11.30 | 2599 | 0 |
96 | 일반 | 누구에게 나 슬픈날은 있다. 'The Blueday Book' | Dreamy | 2004.10.09 | 8294 | 76 |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5