댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 | 추천 수 |
---|---|---|---|---|---|---|
200 | 인터넷 | 인터넷에서 가져온 랜덤한 이미지를 넣고 싶을 땐 | Dreamy | 2015.09.25 | 1932 | 0 |
199 | 영어 | 영어 접두사 6가지 쉽게 풀어보기 | Dreamy | 2015.08.18 | 1934 | 0 |
198 | 일반 | 유튜브 동영상을 글 속에서 배경음으로 사용하기 | Dreamy | 2015.06.29 | 1947 | 0 |
197 | 취미 | 얀 디스마스 젤렌카 Jan Dismas Zelenka 작품 목록 | Dreamy | 2016.10.11 | 1954 | 0 |
196 | 취미 | 옥상달빛 - 수고했어 오늘도 | Dreamy | 2016.01.17 | 1956 | 0 |
195 | 취미 | 프레이징(Phrasing)과 아티큘레이션(Articulation) | Dreamy | 2015.07.29 | 1976 | 0 |
194 | 멀티미디어 | mid→mp3 변환, Free MIDI to MP3 Converter | Dreamy | 2015.04.28 | 1998 | 0 |
193 | 일반 | 테오 얀센 메커니즘 Teo Jansen mechanisom | Dreamy | 2016.06.08 | 2033 | 0 |
192 | 취미 | 악기의 이름과 약어(略語) | Dreamy | 2015.10.16 | 2047 | 0 |
191 | 취미 | 카라얀과 베르디 / 레퀴엠 | Dreamy | 2016.05.10 | 2054 | 0 |
190 | 일반 | BLT 샌드위치 만들기 | Dreamy | 2016.02.11 | 2071 | 0 |
189 | 일반 | 교통사고 상식 | Dreamy | 2014.09.11 | 2072 | 0 |
188 | 성당 | 미사 통상문 (라틴어/한국어) | Dreamy | 2015.10.15 | 2076 | 0 |
187 | 일반 | 윈도우 창 미리보기 해제 | Dreamy | 2014.07.11 | 2087 | 0 |
186 | 일반 | 각종 양념장 | Dreamy | 2013.09.30 | 2104 | 0 |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5