제가 라이브러리파일 만드는것은 처음이라 헷갈리는 부분이 있습니다.

제가 이쪽으로는 능력이 부족해서 프갤여러분께 질문드립니다.


상황은 이렇습니다.

Visual Studio에서 3가지 프로젝트 project A, project B, project C를 만들었고, 각각 라이브러리 파일을 빌드합니다.

project A : a.h, a.cpp => liba.lib

project B : b.h, b.cpp => libb.lib

project C : c.h, c.cpp => libc.lib


a.h에는 class A {...};

b.h에는 class B {...};

c.h에는 class C { ...,  멤버변수로 A* a; B* b }; 가 들어있고

c.cpp에서는 A와 B의 멤버함수 일부분만을 호출하죠.


여기서 질문이 있는데


1. project C 에서 library input으로 liba.lib과 libb.lib을 넣어주면 libc.lib은 어떤 형태인가요?

1-1. liba.lib과 libb.lib의 내용물이 전혀 들어가지 않는다? 만약 이렇다면, 나중에 class C를 사용하는 프로그램을 만들때 인풋으로 liba.lib, libb.lib libc.lib 세가지를 모두 넣어야 하겠죠?

1-2. liba.lib과 libb.lib의 내용물의 일부분만 들어간다?(c.cpp에서 사용한 A와 B의 멤버함수들만) 만약 이렇다면, 나중에 class C 만을 사용하는 프로그램을 만들때 인풋으로 libc.lib 하나만 넣으면 되겠죠?

1-3. liba.lib과 libb.lib의 내용물이 전부 들어간다?


2. project C 에서 library input으로 아무것도 넣지 않으면 libc.lib은 빌드가 되나요?

빌드가 된다면 libc.lib은 어떤 형태인가요? 인풋이 없어서 liba.lib과 libb.lib의 내용물이 전혀 들어가지 않을걸로 추측하는데... 직접 분석할 능력이 없어서 모르겠네요.