댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 | 추천 수 |
---|---|---|---|---|---|---|
95 | 교리교안 | 누가 택함을 받아야 하겠나이까? | Dreamy | 2004.06.06 | 9730 | 48 |
94 | 일반 | 논문 검색 사이트 모음 | Dreamy | 2013.02.08 | 2768 | 0 |
93 | 수업 | 노키아 성공사례 분석 | ★웅제★ | 2003.06.22 | 9340 | 119 |
92 | 교리교안 | 내가 지금 하고싶은 것 | Dreamy | 2004.06.06 | 9122 | 19 |
91 | 일반 | 내 설정파일들 | Dreamy | 2013.02.06 | 2253 | 0 |
90 | 교리교안 | 나의 소중한 것은 (난파선 게임) | Dreamy | 2004.06.06 | 10466 | 39 |
89 | 취미 | 김광진 - 편지 | Dreamy | 2014.07.18 | 1976 | 0 |
88 | 교리교안 | 그리스도의 상징들 | Dreamy | 2004.06.06 | 8951 | 16 |
87 | 성가대 | 귀도 다레쪼의 계명창법 | Dreamy | 2010.04.23 | 14149 | 0 |
86 | 수업 | 권력이동 독후감 | Dreamy | 2004.06.15 | 9992 | 62 |
85 | 아이패드 | 굿리더 USB 전송 프로그램 | Dreamy | 2011.01.05 | 13371 | 0 |
84 | 인터넷 | 구글 캘린더 음력 일정 등록 | Dreamy | 2015.04.13 | 2533 | 0 |
83 | 일반 | 교통사고 상식 | Dreamy | 2014.09.11 | 2188 | 0 |
82 | 일반 | 경조사별 인사말 | Dreamy | 2019.11.05 | 1839 | 0 |
81 | 성가대 | 결혼 축가용 편곡, 사랑 1 | Dreamy | 2010.04.22 | 12694 | 0 |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5