Linux 컴 파일 동적 링크 라 이브 러 리 및 사용
2063 단어 사용자 상태 프로 그래 밍
#ifndef __LIB_COMMON_H
#define __LIB_COMMON_H
void liba_printf();
void libb_printf();
#endif
lib_a.c
#include
#include "lib_common.h"
void liba_printf(void)
{
printf("This is lib a print.
");
return;
}
lib_b.c
#include
#include "lib_common.h"
void libb_printf(void)
{
printf("This is lib b print.
");
return;
}
위의 두 파일 을 동적 라 이브 러 리 로 컴 파일 합 니 다:gcc liba.c lib_b.c-fpIC-shared-o libtest.so 는 현재 디 렉 터 리 에서 라 이브 러 리 파일 libtest.so 를 생 성 합 니 다.
2.동적 링크 라 이브 러 리 파일 main.c 사용
#include
#include "lib_common.h"
int main(void)
{
printf("Main Func reference the lib fun.
");
liba_printf();
libb_printf();
return 0;
}
main.c 를 컴 파일 하 는 명령:gcc main.c-L.-ltest-o main(-L 뒤에 있 습 니 다.링크 라 이브 러 리 의 디 렉 터 리 가 현재 디 렉 터 리 임 을 표시 합 니 다.그렇지 않 으 면 컴 파일 이 Undefined symbols 오류 가 발생 합 니 다./main,출력:Main Func reference the lib fun.This is lib a print.This is lib b print.