Visual Studio (C++; 2005/2008) 에서 프로젝트 설정 쉽게하기
*nix 에서 프로그래밍하다가 VS에서 작업하면서 제일 짜증나던 것 중에 하나가, include path / library(linker) path를 프로젝트 단위로 관리해줘야 했던 것.
*nix 에서는 흔히,
$(CC) -c filename.cc -I$(SOME_PATH) -L$(ANOTHER_PATH)
형식으로 per-file로 하되, 미리 지정한 값으로 지정해서 한 큐에(…) 관리할 수 있었다.
근데 VS로 작업하다보면 프로젝트 단위로 include path / library path를 지정해 줘야하는데, 단일 프로젝트가 아니라 비슷한 설정을 공유하는 복수의 프로젝트에서 이걸 일일이 지정해주려니 영 죽을 맛이더라(…)
어제 IRC 채널에서 이것 관련된 얘기가 오고가는데 stania였나 xeno였나가 vs-property-sheet이란게 있다고 하더라. 그래서 오늘 좀 구글링해보니 MSDN에 VS Property sheet 관련된 페이지가 있다. 이걸 이용해서 프로퍼티 쉿을 만들고 거기에 additional include/library path를 추가해주고 이걸 각 프로젝트에 상속 시켜서 끝(…).
다만 상속시킬 때 단순히 파일 경로를 지정하는건 안되고 일단 프로퍼티 쉿 자체가 어느 프로젝트엔간 등록이 되어있어야 하더라? -_-;;
Windows Vista Platform SDK 덕에 삽질
빌드 서버에 특정 프로젝트 때문에 Windows Vista Platform SDK를 설치했다 (Platform SDK 6.1) . 근데 그러고나니 예전부터 잘 써오던(…) log4cxx 0.10.0 이 빌드 실패 -_-;;
증상은, log4cxx에서 사용하는 Apache Portable Runtime (ARP)에서 사용하는 Windows 상수인 IPPROTO_IPV6 가 없다고 에러를 내는 것. 구글링 해보니 비슷한 증상이 있었고, 그에 대한 해결책도 단순했다.
일부 심볼들이 Windows 버젼 상수 중 하나인 _WIN_NT 값에 따라 정의가 되기도/안되기도 하게 바뀐 것. ASF 쪽에서 그런 것까지 다 신경써서 하진 않았던 것 같고(내 경우 0.10.0 릴리즈버젼을 쓰고있기도 하고), 덕분에 _WIN_NT 값이 정의 안된 APR 빌드가 실패하고 -> log4cxx도 연쇄 실패 ㄳ(…)
아예 preprocessor-definition으로 _WIN_NT 버젼을 설정해주고(일단 적당히 0x501로), 빌드하니까 잘 되더라(…);
여튼 이상으로 오늘의 Windows 삽질은 끝. 흑흑 전 터미널이 더 좋아요 Orz
당연히 있어야할 것 같은게 있긴했군요! 그런데 2005부터 생긴 건가요?
VS 2003에 있는지는 나도 모름 -_-; 2003 깔린 머신이 하나도 없군;