라이브러리: 이미 만들어진 코드나 바이너리를 가져와서 프로그래밍 할 때 사용할 수 있는 콜렉션. 대표적으로 Standard Library가 있다. 자주 사용하는 등이 이에 해당한다. 1. 라이브러리의 종류 1) Header only 일반적으로 코드를 받게 되면 헤더 안에 모든 게 정의되어 있어서 이 헤더를 include 하여 사용하는 경우를 말한다. 2) Static library 윈도우에서는 .lib 확장자, 리눅스에서는 .a 확장자로 나타난다. 이 라이브러리를 빌드 프로세스에서 가져와서 링크 시켜준다고 생각하면 된다.1 3) Dynamic library 로드 타임에 바인딩 할 수도, 런 타임에 바인딩 할 수도 있는 라이브러리. 로드 타임: 프로그램 실행될 때 로더가 프로세스를 실행시킬 때 라이브러리를..
컴파일
c++ 빌드를 위해서 일반적으로 Header, cpp 파일로 나누는데, 그 이유는 무엇이고, 헤더 파일은 어떻게 사용하면 될까? 예제1: 잘못된 함수 호출 foo() 함수를 main() 아래로 내리면, main 함수는 foo()가 어디 있는지 알 수 없기 때문에 호출하지 못한다. 이 때 void foo()를 main 함수 위에 선언해주고 컴파일 해주면 해결된다. 위 부분을 선언 declaration 이라 하고, -즉 함수가 있음을 알려주고 아래 부분을 정의 definition/implementation 이라고 한다, -함수의 실제 내용을 채워주는 것이다. 만약 이처럼 foo()함수를 선언해준 다음 정의해주지 않는다면 linking error가 된다. 그림으로 보면, main.cpp 파일은 있고 컴파일에 ..