댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 | 추천 수 |
---|---|---|---|---|---|---|
245 | 수업 | 리눅스 명령어 요약 | ★웅제★ | 2003.06.22 | 9839 | 182 |
244 | 수업 | SIC_XE 어셈블러 2 | ★웅제★ | 2003.06.22 | 8703 | 177 |
243 | 일반 | 심성계발 프로그램 | ★웅제★ | 2003.05.21 | 8005 | 147 |
242 | 수업 | 플라톤 '향연'을 읽고 (독후감) 5 | Dreamy | 2003.06.22 | 10036 | 142 |
241 | 취미 | 각종 차 만드는 방법! 1 | ★웅제★ | 2003.05.12 | 11766 | 132 |
240 | 수업 | J.S. Mill '여성의 예속'을 읽고 (독후감) 2 | Dreamy | 2003.06.22 | 8380 | 128 |
239 | 취미 | 각종 술담그는 법 | Dreamy | 2004.10.04 | 13322 | 119 |
238 | 수업 | 노키아 성공사례 분석 | ★웅제★ | 2003.06.22 | 9170 | 119 |
237 | 수업 | 사랑의 기술을 읽고 (독후감) | Dreamy | 2003.06.22 | 10328 | 117 |
236 | 일반 | 콜롬부스 대발견 방송내용 전체 모음 | Dreamy | 2004.05.04 | 7098 | 111 |
235 | 일반 | 별, 음악, 시가있는 곳(별음시) | ★웅제★ | 2003.04.14 | 7743 | 106 |
234 | 일반 | 영화 매트릭스 2, 3 대본 | Dreamy | 2004.10.09 | 9330 | 99 |
233 | 수업 | 시인 도종환님의 강연 '나의삶 나의시'를 듣고 | Dreamy | 2004.04.12 | 7211 | 89 |
232 | 취미 | 시조 모음 | Dreamy | 2005.01.19 | 17394 | 87 |
231 | 수업 | 리눅스 미니쉘 프로그램입니다 | Dreamy | 2004.04.12 | 9926 | 78 |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5