링크 ux 정적 라 이브 러 리 생 성 및 사용

5449 단어 linux

라 이브 러 리 는 소프트웨어 구성 요소 기술 로 라 이브 러 리 안에 데이터 와 함 수 를 밀봉 했다.
라 이브 러 리 의 사용 은 프로그램 을 모듈 화 할 수 있다.
Windows 시스템 은 정적 링크 라 이브 러 리(.lib 파일)와 동적 링크 라 이브 러 리(.dll 파일)를 포함한다.
Linux 는 보통 라 이브 러 리 파일 을/usr/lib 또는/lib 디 렉 터 리 에 저장 합 니 다.
Linux 라 이브 러 리 파일 이름 은 접두사 lib,라 이브 러 리 이름,접두사 3 부분 으로 구성 되 어 있 으 며,동적 링크 라 이브 러 리 는.so 가 가장 접두사 이 며,정적 링크 라 이브 러 리 는 보통.a 를 접두사 로 합 니 다.
프로그램 에서 정적 라 이브 러 리 와 동적 라 이브 러 리 를 사용 할 때 불 러 오 는 순서 가 다 릅 니 다.
정적 라 이브 러 리 의 코드 는 컴 파일 할 때 복사 하 는 응용 프로그램 에서 이러한 장점 은 컴 파일 시간 을 절약 하 는 것 이다.
동적 연결 라 이브 러 리 가 실 행 된 후에 라 이브 러 리 함 수 를 호출 할 때 만 불 러 옵 니 다.
정적 라 이브 러 리 생 성 및 사용:
1.헤더 파일 종류 에서 정적 라 이브 러 리 에서 내 보 낸 함 수 를 설명 합 니 다.
2.원본 파일 종류 에서 정적 라 이브 러 리 에서 내 보 내 는 함 수 를 실현 합 니 다.
3.원본 파일 을 컴 파일 하여 실행 가능 한 코드 를 생 성 합 니 다.
4.실행 가능 한 코드 가 있 는 대상 파일 을 정적 라 이브 러 리 에 추가 하고 정적 라 이브 러 리 를 시스템 의 기본 저장 라 이브 러 리 파일 디 렉 터 리 에 복사 합 니 다.
다음은 하나의 예 를 통 해 설명 합 니 다.my lib.h 종 류 는 정적 라 이브 러 리 가 사용자 에 게 제공 하 는 함수 에 대한 설명 입 니 다.my lib.c 는 my lib.h 종 성명 의 함 수 를 실현 합 니 다.
헤더 파일:mylib.h
#ifndef _MYLIB_H_

#define _MYLIB_H_

 

void weclome(void);

void outString(const char *str);

 

#endif

원본 파일:mylib.c
#include "mylib.h"

#include 

 

void welcome(void)

{

    printf("welcome to libmylib
"
); }   void outString(const char *str) { if(str != NULL) printf("%s
"
, str); }

1>mylib.c 를 컴 파일 하여 대상 파일 생 성:gcc-o mylib.o-c mylib.c
2>대상 파일 을 정적 라 이브 러 리 에 추가 합 니 다:ar rcs libmylib.a mylib.o
3>정적 라 이브 러 리 를 Linux 라 이브 러 리 디 렉 터 리(/usr/lib 또는/lib)에 복사 합 니 다.
cp libmylib.a /usr/lib/libmylib.a 
라 이브 러 리 함 수 를 호출 하 는 테스트 프로그램 test.c 를 작성 합 니 다.
#include "mylib.h"

#include 

 

int main(void)

{

    printf("create and use library:
"
); welcome(); outString("it's successful
"
);   return 0; }

4>정적 라 이브 러 리 컴 파일 사용:gcc-o test.c-lmylib
컴 파일 할 때 접두사 와 접 두 사 를 달 필요 가 없 음 을 주의 하 십시오.
5>실행 가능 한 프로그램 테스트 실행:./test
create and use library:

welcome to libmylib

it's successful

Linxu 에서 AR 명령 을 사용 하여 정적 라 이브 러 리 를 만 들 고 수정 할 수 있 습 니 다.
이것 은 Liux 에서 man ar 에서 단번에 인 자 를 얻 을 수 있 습 니 다.여기 서 자주 사용 하 는 몇 가지 것 을 설명 합 니 다.
d:라 이브 러 리 에서 구성원 파일 을 삭제 합 니 다.
r:라 이브 러 리 에 구성원 파일 을 추가 하고 존재 하면 교체 합 니 다.
c:라 이브 러 리 를 만 듭 니 다.
s:AR 명령 이 라 이브 러 리 내용 을 수정 하 든 말 든 라 이브 러 리 기호 표를 다시 만 들 도록 강제 합 니 다.
다른 명령 은 사용 할 때 다시 man.
위의 다섯 단 계 는 기본 적 인 사용 이 고 필요 하 다 면 깊이 공부 해 야 한다.

좋은 웹페이지 즐겨찾기