댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
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 | 취미 | 장필순 - 나의 외로움이 널 부를때 | Dreamy | 2012.01.01 | 8273 | 0 |
109 | 게임 | [배틀 기어] 횡스크롤 2차 세계 대전 | Dreamy | 2009.01.25 | 8365 | 0 |
108 | 일반 | 누구에게 나 슬픈날은 있다. 'The Blueday Book' | Dreamy | 2004.10.09 | 8402 | 76 |
107 | 일반 | 바오밥나무 발아법(마다가스카 종) | Dreamy | 2006.08.16 | 8417 | 7 |
106 | 일반 | [역전세란 대응방법]...전세사는 분들만 보세요. (아고라펌) | Dreamy | 2008.12.04 | 8487 | 0 |
105 | 수업 | J.S. Mill '여성의 예속'을 읽고 (독후감) 2 | Dreamy | 2003.06.22 | 8553 | 128 |
104 | 교리교안 | XY기업경영 (프로그램) | Dreamy | 2004.06.06 | 8687 | 33 |
103 | 교리교안 | 십자가를 찾아서 (프로그램) | Dreamy | 2004.06.06 | 8801 | 14 |
102 | 수업 | SIC_XE 어셈블러 2 | ★웅제★ | 2003.06.22 | 8847 | 177 |
101 | 교리교안 | 그리스도의 상징들 | Dreamy | 2004.06.06 | 8920 | 16 |
100 | 일반 | Shift 키의 10가지 기능 1 | Dreamy | 2010.08.27 | 8954 | 0 |
99 | 프로그래밍 | C language FAQ. | Dreamy | 2006.07.14 | 8963 | 8 |
98 | 일반 | 게임이론 길라잡이 | Dreamy | 2006.05.01 | 8975 | 44 |
97 | 교리교안 | 내가 지금 하고싶은 것 | Dreamy | 2004.06.06 | 9095 | 19 |
96 | 영어 | [영어] to부정사/동명사를 목적어로 취하는 동사 | Dreamy | 2012.02.01 | 9251 | 0 |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5