VS 프로젝트 쉽게 설정하기 + log4cxx 빌드 삽질
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