0. 들어가기
libjpg와 libpng는 Visual Studio 상에서 잘 컴파일 됐다. 다행히도 개발자들이 친절하게 프로젝트 파일이나 솔루션 파일을 제공하기 때문이다. 그런데 libtiff는 뭐임!? 약간 불친절하다고 느낄 수 있게 그런 배려가 없다.
libtiff를 배포하는 공식사이트에서는 building법을 제공할 때, nmake 쓸줄 알아야되 라고 전제하고 있다.
1. 새로운 접근 - nmake
*nix 환경에서 여러 소스를 컴파일 하는데 사용되는 make. 그 make를 윈도우에 맞게 마이크로스프트에서 개발한게 nmake인 모양. GNU maek와 BSD make의 부분적인 기능만 지원한다고 한다.
무슨말이고 하니, 그래픽 환경(GUI)를 사용할 수 없고, 명령어 프롬프트에서 작업해야 한다는 뜻이다. 검은색 화면
당연히 처음엔 cmd로 커맨드 프롬프트 띄워 nmake라고 치면 아무것도 안된다. 시스템 환경변수의 PATH 설정하고, 다시 nmake하면 실행은 된다.
원래 make는 Makefile 안에 저장된 build 순서나 그런 정보에 따라 컴파일하고 링크하는 툴이다. libtiff는
그래서 대충 설정해서, nmake /f makefile.vc 라고 치면 각종 에러를 뱉는데..
2. 새로운 문제
문제가 뭔고 하니 각종 헤더 파일을 include 하지 못한다는 문제이다. 여기서부터 본격적인 헤딩이 시작되는데, 필요한 헤더 파일을 계속 복사한다고 해도 쉽게 해결되지 않는다. 짜증내며 미리 컴파일된 .dll, .lib 파일을 찾아 쓰다보면 필요한 dependency를 가진 또다른 헤더들.. 헤더들을 다 포함시켜도 링크 과정에서 에러를 뱉는다.
The problem when you compile "libtiff" using nmake is that you encounter so many errors saying "cannot fine ***.h" - header files "libtiff" depends on. Although, you copy and paste those header, you get more serious error message during linking process.
3. 새로운 해결법
시작 - 프로그램 - Microsoft Visual Studio 2008 - Visual Studio Tools - Visual Studio 2008 Command Prompt 라는 것이 있다. nmake를 위한 환경을 미리 만들어 준 상태에서 커맨드 프롬프트 창을 열어주는 아이콘이다. 물론, C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC 경로에 가면, vcvarsall.bat 파일이 있다. 이것을 실행하면 컴파일 환경이 만들어져야 하는 것이 정상(?)인 것 같지만 꼭 그렇지가 않다. libtiff 공식 사이트에는 vcvarsall.bat를 윈도우 시작 전 실행되는 배치파일인 AUTOEXEC.BAT에 추가하든가 해서 어찌됐든 컴파일 환경을 만들라고..
There's a brilliant link for making compiling environment "start - program - Microsoft Visual Studio 2008 - Visual Studio Tools - Visual Studio 2008 Command Prompt". This enables your command prompt suitable for compiling with nmake. Even the libtiff official webpage infer vcvarsall.bat in "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC" and add it into AUTOEXEC.BAT.
4. 결과
아무런 에러, 경고 없이 컴파일 잘 된다.
It's now good to go.