본문 바로가기

IDE/Visual Studio

"LNK1104 'XXXX.lib' 파일을 열 수 없습니다" 빌드 오류

테스트 환경 및 주요 아젠다

더보기

이 프로젝트의 개발 환경

  • 개발 언어 및 주요 환경
    • Visual Studio 2022
    • C++ 17
  • 기타 환경
    • Windows 10

Boost 라이브러리를 빌드하고 프로젝트에 링크하였습니다. 

프로젝트를 빌드하면 LNK1104 'XXXX.lib' 파일을 열 수 없습니다 오류가 발생합니다.

shell
닫기
LNK1104 'libboost_json-vc143-mt-gd-x64-1_84.lib' 파일을 열 수 없습니다.

Step 1: 링크 파일 및 경로 확인

프로젝트 설정 | 구성 속성 | 링커 | 일반에서 추가 라이브러리 디렉토리에 추가된 lib 파일 경로를 확인합니다.

shell
닫기
C:\Users\namep\Downloads\boost_1_84_0\boost_1_84_0\stage\lib

lib 파일 경로로 이동하여 소스 코드에서 include하는 lib 파일이 실제로 존재하는지 확인합니다.

빌드 오류 또는 빌드 버전에 의해 Deprecated 된 파일인 경우 재빌드 또는 버전을 변경하여 다시 진행합니다.

또는 링크 파일의 경로가 잘못 지정된 경우 문제가 발생합니다.

Step 2: 좀비 프로세스 종료

컴파일이 연속되는 과정에서 이전에 실행된 프로세스가 비정상적으로 종료된 경우 문제가 발생합니다.

CMD를 실행하고 현재 프로세스 리스트를 표시합니다.

shell
닫기
$ TASKLIST 이미지 이름 PID 세션 이름 세션# 메모리 사용 ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 8 K System 4 Services 0 148 K Registry 108 Services 0 33,608 K ...

솔루션 이름과 일치하는 이미지 이름을 찾고 PID를 확인합니다.

PID를 사용해 좀비 프로세스를 강제 종료합니다.

shell
닫기
$ TASKKILL /F /PID <PID>
더보기

TASKKILL 명령어의 /F 옵션은 지정된 프로세스와 그 프로세스로부터 시작된 모든 자식 프로세스를 종료합니다.

shell
닫기
$ TASKKILL /? TASKKILL [/S 시스템 [/U 사용자 이름 [/P [암호]]]] ​​​​​​​​​{ [/FI 필터] [/PID 프로세스 id | /IM 이미지 이름] } [/T] [/F] 설명: ​​​​이 도구는 프로세스 ID(PID) 또는 이미지 이름으로 작업을 종료하는 데 ​​​​사용합니다. 매개 변수 목록: ​​​​/S 시스템 연결할 원격 시스템을 지정합니다. ​​​​/U [도메인\]사용자 명령을 실행해야 하는 사용자 컨텍스트를 ​​​​​​​​​​​​​​​​​​​​​​​​​​​지정합니다. ​​​​/P [암호] 해당 사용자 컨텍스트의 암호를 지정합니다. ​​​​​​​​​​​​​​​​​​​​​​​​​​​생략한 경우에는 물어봅니다. ​​​​/FI 필터 작업 집합을 선택하는 필터를 적용합니다. ​​​​​​​​​​​​​​​​​​​​​​​​​​​"*"를 사용할 수 있습니다. 예: imagename eq acme* ​​​​/PID 프로세스_ID 종료할 프로세스의 PID를 지정합니다. ​​​​​​​​​​​​​​​​​​​​​​​​​​​TaskList를 사용하여 PID를 얻을 수 있습니다. ​​​​/IM 이미지 이름 종료할 프로세스의 이미지 이름을 ​​​​​​​​​​​​​​​​​​​​​​​​​​​지정합니다. 와일드카드 문자 '*'를 사용하여 ​​​​​​​​​​​​​​​​​​​​​​​​​​​모든 작업 또는 이미지 이름을 지정할 수 있습니다. ​​​​/T 지정된 프로세스와 그 프로세스로부터 시작된 ​​​​​​​​​​​​​​​​​​​​​​​​​​​모든 자식 프로세스를 종료합니다. ​​​​/F 프로세스를 강제로 종료하도록 지정합니다. ​​​​/? 이 도움말 메시지를 표시합니다.