-
너무나 자주 써서 거의 변경이 되지 않는 함수들을 모아 컴파일해서 기계어로 된 것들의 집합
C 소스코드를 만들어서 컴파일을 하면
목적파일이 생성된다.
목적파일은 C 소스코드를 기계어로 번역한 파일이다. .obj라는 확장자를 쓰고 있다.
왜 굳이 다이렉트로 실행파일을 만들지 않고, 목적파일을 만드냐면
한 프로젝트, 또는 파일에 소스코드가 한개가 아니라 여러개로 분리되었을 때
목적파일도 여러개가 만들어져, 수정하지 않은 소스코드는 컴파일과정을 거치지 않고, 링크(소스코드 결합을 해서 하나의 실행파일로 만드는 것)를 할때 목적파일을 그대로 써서 컴파일하는 시간을 단축해주는 역할을 한다.
목적파일이 없으면 수정하지 않은 소스코드도 쓸데없이 다시 컴파일되기 때문에 시간이 더 많이 소모된다.
어쨌든 이런 목적파일에 자주 사용하는 함수를 담고 참조해서 쓸 수는 있는데 문제는 main함수에서 호출하지 않은 함수도 기계어에 포함되어서 비효율적인 단점이 있다.
그래서 실제로 호출된 함수만 기계어에 포함되도록 목적파일을 변환한 것이 라이브러리 파일이다.
이런 라이브러리 파일을 사용하기 위해서는 함수원형을 선언해줘야하는데, 문제는 라이브러리 파일이 기계어로 되어있어서 함수 이름과, 매개변수가 뭐가 있는지 모른다는 것이다. 이 때 필요한게 헤더파일이다. 헤더파일은 함수원형의 집합이다.
헤더파일을 참조하면 라이브러리를 참조할 수 있다.
visual studio 파일 경로에 라이브러리 파일과 헤더파일이 있는 것을 확인 할 수 있을 것이다.
'공부 > cpp' 카테고리의 다른 글
헷갈리는 용어 정리 (0) 2023.03.07 부동소수점 정리 (0) 2023.03.07 헷갈리는 보수 개념 정리 (0) 2023.03.07 [컴프실] 5일차 -클래스 (0) 2023.02.23 [컴프실] 5일차 (0) 2023.02.22