외부 파일에 정의된 함수를 호출하려고 할 때 아래와 같이 LNK2019, LNK1120 에러가 발생하는 경우가 있습니다.
빌드 시작...
1>------ 빌드 시작: 프로젝트: Project01, 구성: Debug x64 ------
1>source01.obj : error LNK2019: sub02main 함수에서 참조되는 확인할 수 없는 외부 기호
1>source01.obj : error LNK2019: sub01main 함수에서 참조되는 확인할 수 없는 외부 기호
1>C:\vs\Solution01\x64\Debug\Project01.exe : fatal error LNK1120: 2개의 확인할 수 없는 외부 참조입니다.
1>"Project01.vcxproj" 프로젝트를 빌드했습니다. - 실패
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========
main() 함수가 존재하는 프로젝트의 속성 창을 열어 [C/C++]>[일반] 메뉴의 ‘추가 포함 디렉터리’와 [링커]>[일반] 메뉴의 ‘추가 라이브러리 디렉터리’, [링커]>[입력] 메뉴의 ‘추가 종속성’을 지정해주어야 하는데, 이 지정에 문제가 생긴 경우에 외부 함수를 참조하지 못해서 위와 같은 에러가 발생합니다.
‘추가 종속성’은 다른 프로젝트에서 컴파일 된 파일을 지정하는데, exe파일 형식으로는 참조할 수 없기 때문에 dll 형식이나 lib 형식으로 컴파일 해야 합니다. 컴파일 및 참조 방법에 대해서는 아래의 글을 참조하세요.