김윤수의 이상계를 꿈꾸며  
대문으로
도라홈스쿨 | 태그 | 지역태그 | 미디어로그 | 방명록 | 관리자 | 새글 쓰기   
 
Visual Studio 2008 에서 CppUnit 컴파일 하기
[공지1] 영문 블로그를 옮겼습니다. 주소는 http://codeguru.textcube.com 입니다. 새로운 내용을 올리진 않고, 당분간 이곳에 올린 내용들을 영어로 옮기는 작업을 할 것 같습니다. 제 영문 블로그도 많이 응원해 주세요~
[공지2] 최근 네이버에서 공개한 나눔고딕 글꼴을 적용했습니다. 나눔고딕이 없으신 분은 맑은 고딕, 윤디자인고딕, AppleGothic 순으로 적용됩니다. 나눔고딕이 없으신 분은 여기에서 다운 받으시면 됩니다
[공지3] 제 글을 복사하고 싶으신 분이나 저작권 정보를 알고 싶으신 분은 이 글을 읽어 보세요
[공지4] 각종 Open Source License 번역 시작
우선 CppUnit 패키지를 풀고 나면, INSTALL-WIN32.txt 라는 파일이 있다.

이 설치 guide에 제시된 대로 %CPPUNIT%\examples\examples.dsw 를 더블 클릭하면 변환할 것인지를 묻고, "Yes"를 선택하면 별 문제없이 잘 변환된다. 그 상태에서 컴파일하면 기본적인 라이브러리는 잘 컴파일되는데, TestRunner 를 비롯해서 에러가 발생하는 것들이 상당히 많이 있다. 기본적인 cppunit library 외에 다른 기능들을 쓰지 않을 것이라면 에러가 발생하는 것들을 무시해도 될 듯하다. 어차피 여기까지 하더라도 cppunit.lib cppunit_dll.lib cppunit_dll.dll 이랑 cppunitd.lib cppunitd_dll.lib cppunitd_dll.dll 등 기본적인 라이브러리는 잘 빌드된다.

TestRunner 쪽 빌드할 때 문제가 발생하는 부분은

%CPPUNIT%\src\msvc6\testrunner\MsDevCallerListCtrl.cpp

의 67번째 라인으로 아무래도 Visual Studio 버전이 Upgrade 되면서 바뀐 부분이 있는데, 그게 소스에 반영되질 않아서 그런 듯하다. 오류 메시지는 다음과 같다

"\MsDevCallerListCtrl.cpp(67) : error C3505: '{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}' 형식 라이브러리를 로드할 수 없습니다.
\MsDevCallerListCtrl.cpp(67) : fatal error C1104: libid를 가져오는 동안 심각한 오류가 발생했습니다. '80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2'"

이 문제를 해결하려면 다음과 같이 하면 된다(이건 제대로된 fix 라기 보다는 quick fix 이다).

67번째 라인의 version("7.0") 이라고 된 부분은 version("8.0") 이라고 바꾸면 된다. (version ("9.0") 이라고 바꿔도 된다. 2008에서는)

이걸 제대로 수정하려면 Visual Studio 8 과 Visual Studio 9의 cl.exe compiler 에서 _MSC_VER predefined macro 가 어떻게 정의됐는지 알아낸 다음에 수정하면 될 것 같긴하다. 아무래도 이거 알아내려면 또 여기 저기 뒤져야 할 것 같아서 그냥 두기로 했다.

여기까지 하면 cppunit*.* 라이브러리들 외에 testrunner*.* 라이브러리들도 생기므로 TestRunner 인터페이스도 쓸 수 있을 것 같다.

참고문헌
VC++ 7.0(VS .NET)에서 CppUnit (NUIT아님) 쓰고 싶은 사람 나만 따라 해바바바바~ : VS 7.0 에서 컴파일하는 내용이지만 그 이후 버전에서도 개념의 거의 비슷하므로 따라하면 도움이 된다.
VS 7에서 CPP Unit 사용하기 : 위 글보다 약간 더 자세해서 이해하기 쉽다. 위 분은 모든 프로젝트에서 공통적으로 설정하는 방법을 몰라 헤맸는데, 이 분은 그걸 정확히 설명해 놓으셨다.
CPPUnit 을 사용하기 위한 단계별 작업 : 덧붙여 Test Case 를 작성하는 샘플과 프로젝트 세팅해야할 항목을 설명해 놓으셨다. 그런데 프로젝트 라이브러리 세팅하는 것은 첫글을 보는 게 나을 듯하다.
CppUnit : 세부적으로 나와 있진 않지만 위 세글을 모두 합쳐놓은 듯한 글이다. Reference 로 삼으면 좋을 듯하다. 이 글에서는 %CPPUNIT%\examples\examples.dsw 보다는 %CPPUNIT%\src\CppUnitLibraries.dsw 으로 컴파일하라고 나와 있는데, 이글에 나와있는 대로 따라하는 게 시간 절약하는 방법일 것 같다.

제 글이 유익하셨다면 오른쪽 버튼을 눌러 제 블로그를 구독하세요. ->
블로그를 구독하는 방법을 잘 모르시는 분은 2. RSS 활용을 클릭하세요.
RSS에 대해 잘 모르시는 분은 1. RSS란 무엇인가를 클릭하세요.


제 글이 유익하셨다면 오른쪽 버튼을 눌러 제 블로그를 구독하세요. ->
블로그를 구독하는 방법을 잘 모르시는 분은 2. RSS 활용을 클릭하세요.
RSS에 대해 잘 모르시는 분은 1. RSS란 무엇인가를 클릭하세요.

마지막으로 제 글이 유익하셨다면 과감하게 추천 버튼 한방 부탁드립니다 ^^

Tag : , , , , , ,


BLOG main image
이상계는 이쪽에 속해있지 않고 저쪽에 속해 있다. 이쪽에 사는 우리는 이쪽에 머무르지 않고 저쪽을 꿈꾸며 살아야 한다. 여기 오는 모든이들이 저쪽의 충만함을 이쪽에서의 매일의 삶에 경험할 수 있기를... E-mail: (yesarang) at (yahoo.co.kr)
 블로그 구독



meet me at meet me at me2DAY
E-mail 주소를 입력하세요:


 블로그 검색
Google
 Notice
me2day 개설했습니다.
블로그 스킨 바꾸었습니다
제 블로그의 성격
 분류
분류 전체보기 (341)
IT동향 (29)
사회동향 (4)
기술정리 (10)
개인 (17)
기타 (28)
기독교신앙 (1)
S/W개발 (110)
블로깅 (13)
리뷰 (8)
구글이야기 (9)
인터넷오늘은 (108)
독서 (3)
 태그 목록
인터넷오늘은 북마크 c++ 프로그래밍 sw개발 SW 개발 블로그 구글 SW 프로그래밍팁 c Programming Language S/W 개발 cpp 네이버 고수 고수팁 검색 고절가주팁 블로깅 IT 전략 iPhone 리뷰 다음 블로거 Programming Technology RSS
 달력
«   2009/07   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
 최근글
C++ 이야기 서른번째: boost::.. (4)
김윤수의 인터넷 오늘은 - 200..
김윤수의 인터넷 오늘은 - 200..
김윤수의 인터넷 오늘은 - 200.. (1)
C++이야기 스물아홉번째: Port..
 최근 댓글
그러게요. 저도 쓰면서 성능이..
김윤수 - 21:17
어느새 다녀갔네?
김윤수 - 21:15
아는대로 써 보는 거랑, 실제..
eslife - 07/01
좋은거 하나 배우고 갑니다. :)
파다기 - 07/01
전 미국에서 회사를 다녀서 그..
violino - 06/26
 최근 트랙백
TR1을 이용한 C++에서의 정규..
김재호의 디지털보단 아날로그
항목 39 : 가상 함수는 비공용..
최익필의 이름없는 블로그
죠커의 생각
jokka's me2DAY
검색 어뷰징 패턴 및 필터링..
made by 서보성
김윤수의 알림
yesarang's me2DAY
 Archive
2009/06
2009/01
2008/12
2008/11
2008/10
2008/09
2008/08
2008/07
2008/06
2008/05
2008/04
2008/03
 링크 모음
art.oriented
kkamagui 프로그래밍 세상
Monaca
Sutter's Mill
Yesarang's Blog[제 영문 블로..
[개인] Chester's Blog
[개인] Homo Scriptus
눈에 보이는 소프트웨어
류광의 번역 이야기
사진찍는 프로그래머
서광열의 프로그래밍 언어 이..
주네의 열린 소프트웨어
퓨처워커들의 u-Platform 이야기
필넷의 IT이야기
 방문자 통계
Total : 383,568
Today : 14
Yesterday : 29

믹시