c++에서 const int 변수가 겹칠경우 컴파일 방법이 있나요?
글쓴이: goofy2 / 작성시간: 수, 2014/06/11 - 10:19오전
A 라는 라이브러리와 B라는 라이브러리를 이용해서 프로그램을 개발하고 있습니다.
그런데 A에서 제공하는 헤더파일과 B에서 제공하는 헤더파일에 동일하게
const int FAIL = -1
이라고 선언되어 있어요....
컴파일 할 경우 redefinition of 'const int FAIL' 에러가 발생하구요...
여기까지는 당연한데... 헤더파일을 수정하지 않고 컴파일을 하고 싶습니다.
헤더파일은 상용 라이브러리이기 때문에 수정하기가 조금 곤란하네요...
방법이 있을까요?
Forums:
방법이 없는건 아닌데, 제대로된 라이브러리라면
방법이 없는건 아닌데, 제대로된 라이브러리라면 해더파일에 전역변수를 선언하지 않습니다.
게다가 상용라이브러리라니... 상용이라면 보통 코드 지원도 포함되니까 그쪽에 수정을 요청하는게 좋을 듯합니다.
가장 간단한 해결책은 A의 해더가 a.h고 B의 해더가 b.h라면
와 같이 하면 일단은 컴파일은 될겁니다. 상수값이 동일하다면 당장 문제되진 않을 거같은데 이걸로 링크가통과될진모르겠네요. C++에서 상수정수는 치환되버리는경우가많은데 라이브러리라서 변수이름이 라이브러리에밖혀있으면 이걸론안되지싶습니다.
댓글 달기