티스토리 뷰

반응형

Microsoft Visual Studio에서 프로젝트를 만들고 빌드하다 보면 가끔 LNK2019 에러가 발생합니다. 생각보다 다양한 원인에 의해서 발생할 수 있습니다. 여기서는 외부 프로젝트 추가하여 프로젝트를 구성할 할 때 발생하는 LNK2019 문제 해결방법을 공유합니다.

 

LNK2019 에러

기존에 만들어놓은 프로젝트를 추가하여 빌드할 때 가끔 발생하는 에러입니다. 이런 에러를 가끔 볼 때마다 어떻게 해결했었는지 기억이 안 나서 다시 찾아보는 일이 많아서 여기에 정리하고자 합니다. 예를 들어 어떤 라이브러리가 있고, 그 라이브러리를 가져다 사용하는 프로젝트가 있을 때, 빌드된 라이브러리 자체를 포함시킬 수 도 있지만, 라이브러리 소스코드가 있다면 그 라이브러리를 만든 프로젝트를 나의 프로젝트에 포함시켜서 빌드하는 경우가 있습니다. 이 경우 분명 프로젝트 종속성도 추가했는데, 아래처럼 에러가 발생하는 경우가 있습니다. "함수에서 참조되는 확인할 수 없는 외부 기호" 대충 이런 메시지와 함께 LNK2010라고 에러 코드가 보입니다.

해결방법

참고로 빌드 종속성은 프로젝트에서 빌드 종속성 -> 프로젝트 종속성을 확인해 봅니다. 또는 메뉴의 프로젝트 -> 프로젝트 종속성을 선택한 다음에, 추가해 준 외부의 프로젝트를 선택해 줍니다. 아래 그림에서 붉은색 부분으로 들어가서 설정할 수 있습니다.

이 상태에서도 에러가 난다면, 위 그림의 파란색 밑줄친 메뉴로 들어가거나, 솔루션 탐색기 부분에 참조라고 되어있는 부분이 있는데, 참조 -> 참조 추가로 들어간 후에, 프로젝트 부분을 선택하여 추가해 준 라이브러리 프로젝트 이름 부분을 체크해 줍니다. 

 

MS 공식사이트 참고

그래도 문제가 해결되지 않는다면, MS 공식사이트에서 설명하는 링커 도구 오류 LNK2019에 대한 설명을 참고해보면 도움이 됩니다. 다양한 원인에 대해서 설명이 되어 있습니다. 저의 경우는 대부분 위에서 설명한 프로젝트 종속성과 참조 문제이거나, 간혹 C에서 정의한 함수를 C++에서 사용할 때 extern "C" 를 사용하지 않아서 발생한 경우가 대부분이었습니다.

 

반응형
반응형