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개 이상 사용해도 이런 에러가 나온다고 한다.
혹시 같은 이름으로 함수를 선언했는지 확인해보자.