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

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

2 Comments

Leave a Reply