메뉴 건너뛰기


Developer > Development Tools

Doxygen 5장. CHM파일 만들기

2013.11.16 01:37

푸우 조회 수:11692

사실 CHM 파일은 설정만 잘 하셨다면 자동으로 만들어지게 되는데...
문제는 한글이 깨진다는데 있습니다. 이 부분을 정상적으로 바꿔 보겠습니다.

5장. CHM파일 만들기
 
우리느 이미 CHM파일을 만들기 위한 설정을 모두 마쳤습니다.
그래서 doc/html 폴더를 열어보면 hello.chm 파일이 있죠.
이는 환경변수에 "GENERATE_HTMLHELP"를 YES로 하고 "CHM_FILE"에 hello.chm 이라고 설정했고 "HHC_LOCATION"에 "C:\Program Files\HTML Help Workshop\hhc.exe" 을 지정했기 때문이죠.
만약 CHM_FILE을 지정하지 않았다면 index.chm 파일로 생성이 됩니다.
 
자 한번 열어 보세요.
20071023_233332.png
 
오른쪽의 실제 문서는 잘 만들어진 것 같은데 왼쪽의 목차는 영 엉망이네요.
 
이번 장에서는 이 문제를 해결해 보겠습니다.
 
먼저 왼쪽의 목차가 깨지는 이유는 chm파일을 생성하기 위해 "MS사의 HTML Help Workshop"의 "HTML Help Compiler(hhc.exe)"를 사용하게 되는데 이 hhc.exe파일은 *.chm파일을 만들기 위해 index.hhp 파일을 필요로 합니다. doc/html 폴더에 보시면 있습니다. 이 파일에는 어떤 파일들이 *.chm파일에 포함되어야 하는지 등등의 내용이 들어 있습니다. 이 중 목차를 만들기 위해 index.hhc라는 파일을 필요로 하는데 (이 파일도 있음) 이 파일이 UTF-8로 작성되어 있어서 위와 같은 오류가 발생합니다.
 
고로 해결 방법은 어떻게든 index.hhc파일을 CP949  혹은 EUC-KR로 변경하고 hhc.exe로 컴파일하면 됩니다.
 
여기서 iconv라는 툴을 사용하여 UTF-8 문서를 CP949 코드로 바꿔보겠습니다.  
물론 iconv 툴이 설치되어 있어야 합니다.
 
C:\Work\hello_doxygen\doc\html>iconv -f UTF-8 -t CP949 index.hhc > index.cp949 C:\Work\hello_doxygen\doc\html>del index.hhc C:\Work\hello_doxygen\doc\html>move index.cp949 index.hhc
 
이렇게 하면 index.hhc가 UTF-8에서 CP949로 변환되었습니다.
 
이런 다음과 같은 명령으로 컴파일하면 됩니다.
 
C:\Work\hello_doxygen\doc\html>"C:\Program Files\HTML Help Workshop\hhc.exe" index.hhp Microsoft HTML Help Compiler 4.74.8702 Compiling c:\Work\hello_doxygen\doc\html\hello.chm Compile time: 0 minutes, 0 seconds 53 Topics 633 Local links 34 Internet links 9 Graphics Created c:\Work\hello_doxygen\doc\html\hello.chm, 102,288 bytes Compression decreased file by 96,434 bytes.
 
이렇게 컴파일 했다면 hello.chm파일을 다시 열어 볼까요? 
 
20071023_235532.png
 
이제 정상적으로 보이시죠?
 
저는 다음과 같은 Batch파일을 만들어서 사용합니다.
iconv -f UTF-8 -t CP949 index.hhc > index.cp949 del index.hhc move index.cp949 index.hhc "C:\Program Files\HTML Help Workshop\hhc.exe" "%1"
 
위의 파일을 "C:\Program Files\doxygen\bin" 폴더에 hhc.bat 파일 이름로 저장해 놓고 "HHC_LOCATION" 값에 "C:\Program Files\doxygen\bin\hhc.bat"을 설정하여 사용하면 됩니다.
 
아직도 doxygen의 기능은 많습니다.
 
Latex를 이용해서 pdf를 만든다든가. man 파일을 만든다든가. *.rtf 파일을 만든다든가 하는 것 말이죠.
사실 man과 rtf파일은 환경변수의 "GENERATE_MAN" 항목을 YES로 "GENERATE_RTF" 항목을 YES로 설정하는 것만으로도 만들 수 있습니다 . 그냥 한번 해 보세요.
사용할 일은 그리 많지 않을 것 같긴 합니다만....
 
어찌되었건 doxygen을 활용하는 방법에 대한 강좌는 여기까지 해서 마무리 짓도록 하겠습니다.
 
사실 조금 이겠지 하고 시작한 강좌였는데... 무지하게 길어졌네요.
 
아직도 환경변수들 해석하는 일이 있긴 하지만 실제 강좌 중에 많은 환경 변수를 다루었기 때문에 꼭 해석할 필요가 있는지 잘 모르겠습니다.
 
아무튼 시간이 되면 해석 하기로 하구요.
 
저도 그렇지만 여러분도 수고 많이 하셨습니다.
 
그럼 즐거운 프로그래밍 하시길...
 
 
 
 
 
 
Creative Commons License
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Copyright 조희창(Nicholas Jo). Some rights reserved. http://bbs.nicklib.com