제목과 달리 찾아보기 정보(Browse Information)이라는 Visual C++ 의 구성 속성에 대한 이야기이다.
놀랍게도 매우 눈에 잘 띄는 곳에 있는데도 이 옵션의 용도에 대해 아는 사람은 거의 없었다. 이래저래 찾아보니 Visual Studio 의 인텔리센스 기능이 약할 오래 전(아마도 6.0일 때) 들어온 옵션인 모양이다. 간단히 말하자면 당시의 인텔리센스 기능을 활성화 또는 보강하는 정도의 역할을 했던 것 같다. 그러나 세월이 흐름에 따라 Visual Studio 의 Intellisense 기능이 전과 비교 못할 정도로 좋아졌고 이제는 그 존재 이유가 거의 사라졌다.
그러니 이 옵션을 쓸 일이 없고, 실제로 새 프로젝트를 생성하면 옵션이 비활성화되어 있다. 그런데 왜 여기서 굳이 찾아보기 정보에 대해 이야기하느냐?
문제는 레가시 프로젝트이다. 오래 전에는 이 기능이 기본적으로 활성화되어 있었던 듯 한데, 그 점은 확실하지 않다. 하지만 꽤 널리 쓰인 기능이었는지 레가시 프로젝트 중에는 이 옵션이 여전히 켜진 경우가 있다. 짐작하기로는 Visual C++ 6.0 프로젝트를 상위 버전으로 마이그레이션할 때 이런 일이 벌어지는 듯 하다.
그런데 이 옵션을 켜면 빌드가 상당히 느려진다. 실제로 이 옵션을 끄는 것만으로 빌드 시간이 40% 가까이 단축되기도 했다. 그러므로 Visual Studio 2008 / 2010 사용자라면 이 옵션을 끄는 게 당연하다. 하지만 그 과정이 생각보다 까다롭다.
기본적으로는 위의 그림에서 보듯 [구성 속성 – C/C++ / 찾아보기 정보 – 찾아보기 정보 사용]을 ‘없음’으로 바꾸면 기능이 비활성화되어야 한다. 그러나 레가시 프로젝트를 마이그레이션한 경우에 이 방법이 안 먹히기도 한다. 아무리 옵션을 꺼도 아래와 같이 “찾아보기 정보 파일 만들고 있습니다…”라는 메시지가 뜬다.
이는 “찾아보기 정보” 속성이 프로젝트가 아닌 소스파일 수준에서 활성화되어 있기 때문이다. 하지만 수십 또는 수백 개나 될 소스파일의 구성 속성을 일일이 바꿔주기는 귀찮다. 이럴 때는 모든 .vcproj 파일을 텍스트 편집기에서 다 열어서 아래와 같은 값을 일괄적으로 삭제해버리면 된다.
BrowseInformation="1"
해당 속성 값이 명시되지 않으면 비활성화한 것으로 처리하므로 BrowseInformation 값을 0으로 바꾸는 것보다 이 편이 낫다.