MFC Programming

[MFC] LNK1120 - 1개의 확인할 수 없는 외부 참조입니다.

징리츠 2022. 2. 21. 17:13
해당 에러가 나오는 경우 아래의 문제일 수 있다.

- x86, x64를 섞어서 빌드

- 정의되지 않은 변수, 함수 사용
- 2개 이상의 같은 이름 함수

 

x86, x64를 섞어서 빌드

x64로 빌드한 모듈을 x86에서 쓰는등 버전이 섞인 경우 에러가 발생할 수 있다.

나같은경우 x86은 빌드 성공인데, x64는 빌드에 실패하며 LNK1120 에러를 출력했다.

DLL을 추가했는데, 안돼서 DLL경로 문제일거라 생각했다.

x86으로 빌드한 모듈을사용해서 x64빌드하려고해서 발생했다.

.h, .dll, .lib 파일을 그냥 프로젝트 폴더에 넣고,

#include "추가Lib.h"

#pragma comment(lib, "추가Lib.lib");

이런식으로 테스트한다고 무식하게 때려넣었더니 문제가 생겼다.

 

.h 파일은 프로젝트 폴더에 놓고 쓰면 되는데,

dll, lib파일은 특정 디렉토리 넣고, 종속성 관리를 해주는게 좋다.

프로젝트 -> 속성 (Alt+F7) -> 링커 -> 입력 -> 추가종속성에 lib 경로 지정해주면 된다.

 

정의되지 않은 변수, 함수 사용

정의되지 않은것을 썼다거나, 오타로 한글자 빼먹었을 때도, 발생할 수 있다.

Main 함수인데 main이라고 썼다거나, Mian을 썼다거나, Array인데 Aray로 썼다거나

대/소문자구분, 문자 순서, 한글자 누락 등을 확인해보는게 좋다.

이런 경우에도 LNK1120 에러가 나올 수 있다.

 

2개 이상의 같은 이름 함수

같은 이름을 가지는 함수를 2개 이상 사용해도 이런 에러가 나온다고 한다.

혹시 같은 이름으로 함수를 선언했는지 확인해보자.