티스토리 뷰

728x90
반응형

IDE 버전 : Visual Studio 2019

운영체제 : Windows 10

오류내용(영문) : Error LNK1181 cannot open file 'kernel32.lib'

오류내용(한글) : 오류 LNK1181 'kernel32.lib' 입력 파일을 열 수 없습니다.

스크린샷

LNK1181 오류 사진

오류원인 및 해결방법 :

1. [프로젝트 속성] - [링커] - [입력] - [추가 종속성] 항목에 kernel32.dll 가 지정되어 있는가? (지정되어 있으므로 문제없음)

2. [프로젝트 속성] - [VC++ 디렉터리] - [라이브러리 디렉터리] 항목이 잘 설정되어 있는가? (기본값으로 설정되어 있으므로 문제없어보임)

3. 2번에서 환경변수 경로가 문제없다면 환경변수의 평가 값에 해당하는 디렉터리 경로에 kernel32.dll 파일이 있는가? (확인해봤을 때 kernel32.dll 파일이 존재하지 않았기에 여기서 무언가가 잘못되었다는 것을 확인함)

평가 값에 있는 디렉터리 목록에 모두 접근해봤을 때 kernel32.dll 파일이 존재하지 않았음. 그렇기에 Visual Studio 2019에서는 파일을 찾을 수 없기 때문에 오류를 출력한 것이었음.

 

보통 위와 같은 문제의 경우에는 Visual Studio SDK 가 정상적으로 설치되지 않았거나 Visual Studio 프로젝트 속성에서 로컬 PC에 설치된 SDK 버전을 올바르게 지정하지 않았을 때 발생할 수 있음.

 

본인의 경우에는 로컬 PC에 설치되어 있는 SDK 버전과 프로젝트 속성에 설정되어 있는 SDK 버전이 달라서 생긴 문제였음.

 

SDK 버전은 [프로젝트 속성] - [일반] - [대상 플랫폼 버전] 에서 확인할 수 있음

보다시피 위 대상 플랫폼 버전에는 8.1 이라고 설정되어 있음. 이는 프로젝트 자체에서 부모 프로젝트나 이전에 저장한 속성 값에 의해서 자동으로 할당받은 버전임. 해당 값을 로컬PC에 설치되어 있는 버전으로 변경해주면 됨.

본인은 10.0.14393.0 버전으로 설정해주었음. 이제 [적용] 버튼을 눌러 프로젝트에 반영해줌.

 

이제 다시 [프로젝트 속성] - [VC++ 디렉터리] - [라이브러리 디렉터리] 항목을 보겠음.

아까와는 다르게 평가 값 목록에 다른 경로들이 추가된 것이 보임. 이제 올바른 SDK 버전에 맞는 라이브러리 디렉터리가 설정된 것을 알 수 있음. 해당 경로에 들어가보면 kernel32.lib 파일이 존재하는 것을 알 수 있음.

 

이 상태에서 이제 다시 컴파일 솔루션 빌드를 해보면 이제는 오류 없이 정상적으로 빌드가 되는 것을 알 수 있음.

 

- 끝 -

728x90
반응형
댓글