pursue 2020. 12. 21. 19:02

참조하는 기호가 중보되는 경우 발생하는 오류이다.

따라서 참조 기호를 명확하게 명시 하거나 선언의 위치를 다시 검토 하기 바란다.

 

필자는 영상처리 라이브러리 opencv를 사용하면서 종종 C2872를 마주하였다.

보통 아래 글귀로 보게된다.

error C2872 : ACCESS_MASK : 모호한 기호입니다.

using namespace cv와 winnt ACCESS_MASK와 중복되어 발생하는 컴파일 오류이다.

 

해결 방법은 2가지가 있다.

1. #include <Windows.h> 선언을 모든 opencv 관련 해더 선언 보다 위에 선언하는 것이다.

해결 방안 1 예시

2. 모호한 위치에 참조 선언을 명확하게 표기 하는 것이다.

해결 방안 2 예시

 

참고 자료 1 : docs.microsoft.com/ko-kr/cpp/error-messages/compiler-errors-2/compiler-error-c2872?view=msvc-160

 

컴파일러 오류 C2872

자세한 정보: 컴파일러 오류 C2872

docs.microsoft.com

참고 자료 2 : answers.opencv.org/question/62079/access-mask-ambiguous-symbol/

 

ACCESS MASK AMBIGUOUS SYMBOL - OpenCV Q&A Forum

ACCESS MASK AMBIGUOUS SYMBOL edit I am trying to upgrade my opencv 2.4.11 to opencv 3.0rc1 and i get the following error: Error 1 error C2872: 'ACCESS_MASK' : ambiguous symbol C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h 9084 Error 2 error C2

answers.opencv.org