라이브러리

지금까지 C언어 문법 공부하면서 여러 라이브러리 사용했다. 이제 라이브러리를 직접 만들어보면서 라이브러리 이해도를 높여보자.

라이브러리의 가장 큰 특징은 main이 없다는 것임. 당장 기능을 실행하겠다는 의도가 없기 때문이다.

프로젝트의 속성에서 Configuration Type을 보면 Application으로 되어있다.

Untitled

지금까지 우리가 사용한 프로젝트는 모두 실행파일의 형태(application)임.

#include "my_Library.h"
#include <stdio.h>

void say_hello()
{
	printf("Hello\\n");
}

void say_world()
{
	printf("World\\n");
}

이렇게 만든 c파일을 빌드하면, 컴파일러에게 main()이 없다는 오류를 받을 수 있다. application, 즉 실행파일 만드는 모드에서는 main()함수가 필수다. 운영체제가 실행파일에서 가장 먼저 실행하기로 약속한 함수가 존재해야함.

이제 설정을 바꿔보자.

라이브러리에는 static라이브러리dynamic라이브러리가 있다. 전자인 정적 라이브러리는 실행파일이 라이브러리를 포함하고 있을때 사용되는 것이고, 동적라이브러리는 실행파일이 실행할때 동적으로 라이브러리를 외부에서 갖다 쓰는 경우에 사용됨.

우리는 정적 라이브러리로 시작하겠다.

Untitled

설정을 바꿔준후 다시 빌드하면 이번에는 문제 없이 빌드가 되는걸 알 수 있다.

Untitled

그리고 여기서 확인할 수 있는건. 빌드된 파일이 lib확장자를 갖고 있다는 점임.

Untitled

이 라이브러리를 사용해보자.

참고로 디버그 모드에서 라이브러리를 빌드했다면 해당 라이브러리는 다른 파일에서 디버그모드에서 사용가능하고, 릴리즈 모드에서 라이브러리를 빌드했다면 이를 사용하기 위해 릴리즈 모드로 바꿔줘야 한다.