당신의 빌드는 안녕하십니까?

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:August 3, 2011

제목과 달리 찾아보기 정보(Browse Information)이라는 Visual C++ 의 구성 속성에 대한 이야기이다.

image

놀랍게도 매우 눈에 잘 띄는 곳에 있는데도 이 옵션의 용도에 대해 아는 사람은 거의 없었다. 이래저래 찾아보니 Visual Studio 의 인텔리센스 기능이 약할 오래 전(아마도 6.0일 때) 들어온 옵션인 모양이다. 간단히 말하자면 당시의 인텔리센스 기능을 활성화 또는 보강하는 정도의 역할을 했던 것 같다. 그러나 세월이 흐름에 따라 Visual Studio 의 Intellisense 기능이 전과 비교 못할 정도로 좋아졌고 이제는 그 존재 이유가 거의 사라졌다.

그러니 이 옵션을 쓸 일이 없고, 실제로 새 프로젝트를 생성하면 옵션이 비활성화되어 있다. 그런데 왜 여기서 굳이 찾아보기 정보에 대해 이야기하느냐?

문제는 레가시 프로젝트이다. 오래 전에는 이 기능이 기본적으로 활성화되어 있었던 듯 한데, 그 점은 확실하지 않다. 하지만 꽤 널리 쓰인 기능이었는지 레가시 프로젝트 중에는 이 옵션이 여전히 켜진 경우가 있다. 짐작하기로는 Visual C++ 6.0 프로젝트를 상위 버전으로 마이그레이션할 때 이런 일이 벌어지는 듯 하다.

그런데 이 옵션을 켜면 빌드가 상당히 느려진다. 실제로 이 옵션을 끄는 것만으로 빌드 시간이 40% 가까이 단축되기도 했다. 그러므로 Visual Studio 2008 / 2010 사용자라면 이 옵션을 끄는 게 당연하다. 하지만 그 과정이 생각보다 까다롭다.

기본적으로는 위의 그림에서 보듯 [구성 속성 – C/C++ / 찾아보기 정보 – 찾아보기 정보 사용]을 ‘없음’으로 바꾸면 기능이 비활성화되어야 한다. 그러나 레가시 프로젝트를 마이그레이션한 경우에 이 방법이 안 먹히기도 한다. 아무리 옵션을 꺼도 아래와 같이 “찾아보기 정보 파일 만들고 있습니다…”라는 메시지가 뜬다.

image

이는 “찾아보기 정보” 속성이 프로젝트가 아닌 소스파일 수준에서 활성화되어 있기 때문이다. 하지만 수십 또는 수백 개나 될 소스파일의 구성 속성을 일일이 바꿔주기는 귀찮다. 이럴 때는 모든 .vcproj 파일을 텍스트 편집기에서 다 열어서 아래와 같은 값을 일괄적으로 삭제해버리면 된다.

BrowseInformation="1"

해당 속성 값이 명시되지 않으면 비활성화한 것으로 처리하므로 BrowseInformation 값을 0으로 바꾸는 것보다 이 편이 낫다.

Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
follow me
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts