본문 바로가기

[Clet]주노's Clet강좌-2.2. 개발 환경 설정 (VS 6.0)

[펌]http://juno.springnote.com/pages/1049758

이 Clet 강좌는 VS.NET 2003 을 기준으로 작성되었습니다만, 여전히 현업(^^)에서는 VS 6.0 도 많이 쓰이고 있는 관계로 요청하신 분도 있고 , .NET 시리즈로 넘어오면서 인터페이스가 바뀐 부분들이 존재하기도 해서 환경 설정에 대해서 간단히 정리해 보았습니다.


/* 가급적 사용 편의성이나 이런저런 부가 기능등이 증가한 .NET 버전의 사용을 권합니다만, 사실 Clet 개발은 어디서 해도 별로 관계는 없기도 합니다. 자기 손에 익은 환경이 가장 좋은 환경이기도 하니깐요. 확실히 아직 6.0 이 많이 쓰인다는건 역시나 잘 만들어진 개발 환경이라는 의미이기도 하겠죠. 사실 닷넷으로 오면서 무거워지기도 했으니깐요^^ */


helloclet 프로젝트 생성부터 환경 설정후 빌드까지

기본적인 프로젝트 소스나 자세한 설정 순서는 [Clet] 2. SDK 설치와 개발 환경 설정 를 참고하세요.


  • File 메뉴의 New 를 선택해서 아래 처럼 입력합니다.
    clet2-2_1.png
    화살표가 가르키는 항목(Win32 Dynamic-Link Library)을 선택하고 Project nameLocation을 설정합니다. 여기서는 2강의 내용과 같은 설정값을 이용하도록 하겠습니다. (Project name을 입력하면 자동으로 Location 뒤에 붙으므로 먼저 Location 부터 설정하고 나서 입력하는게 좋겠죠^^)
  • 아래와 같은 화면 같이 선택하고 Finish를 누릅니다.
    clet2-2_2.png
  • 소스 파일은[Clet] 2. SDK 설치와 개발 환경 설정 을 참고하여 미리 해당 프로젝트 폴더에 작성해두시던가 직접 입력을 하시기 바랍니다. 예를 들어 이미 존재하는 소스 파일을 추가 할때는 아래와 같이 합니다.
    clet2-2_3.png
    clet2-2_4.png
  • 2강 예제에서 사용하는 소스 파일이 제대로 추가되면 파일을 선택해서 직접 편집할 수 있습니다. 아래와 같이 되면 제대로 읽은거죠.
    clet2-2_5.png
    /* 색 지정을 잘못했군요ㅎㅎ 그냥 그러려니... ^^ */
  • 이제 프로젝트 속성을 설정하도록 하겠습니다. VS 6.0에서는 단축키 Alt+F7 로 프로젝트 설정을 할 수 있으며, 아래와 같이 메뉴에서 선택해도 됩니다. VS.NET 시리즈와 이 VS 6.0의 프로젝트 설정 화면은 조금 구성 방식이 달라 보이기 때문에 햇갈릴 수 있는 부분이니 어떤 차이들이 있나 직접 확인해보시기 바랍니다.
    clet2-2_6.png
  • 처음 설정 창이 열리면 이전에 열었던 탭(Tab) 환경을 기억하고 있는데, 처음 열었다면 아마 아래와 같은 General 탭을 가르키고 있을 것 입니다.(뭐 상황에 따라 다를 수 있습니다.) 화면 윗부분에 동그라미로 표시한 부분이 각 세부 속성을 구분하는 대분류(^^) 정도 되겠습니다.
    clet2-2_7.png
  • 아래와 같이 대분류라고 생각되는 상단 탭에서 C/C++ 을 선택하고 그 아래 보이는 Category 에서 원하는(아래에서는 Procompiled Headers 겠죠.) 분류를 선택해서 설정할 화면을 보게 되는데, VS.NET 에서는 이런 부분이 왼쪽에 트리뷰로 나오게 되죠.
    사실 큰 차이는 그정도 입니다만, 조금 세세한 항목들이 차이가 있으므로, Clet 실습을 위해 설정해야 할 부분들을 그럼 살펴보겠습니다.
    일단 아래와 같은 화면을 저는 C/C++ >> Precompiled Headers 라고 표기하겠습니다.
    이 화면에서는 대개 프로젝트가 생성되면 기본 값으로 2번째 항목인 Automatic~ 이 선택되나 특별히 사용할 이유는 없으므로 여기서는 첫번째 항목인 Not using precompiled headers 를 선택하겠습니다. /* 사실 뭐 취향적인 선택일지도 모르겠습니다. ㅎㅎ */
    clet2-2_8.png
  • C/C++ >> Preprocessor 에서 추가 포함 디렉토리(Additional include directories)에 C:\WIPI\Include\API을 입력합니다.(설치한 SDK 경로에 맞춰 주시기 바랍니다.) /* VS.NET 과 다르게 경로 입력시에 직접 입력해야 합니다.^^ */
    clet2-2_9.png
  • Link >> General 에서 Object/library modulesC:\WIPI\Lib\EmulLibInit.obj  을 입력합니다.(경로명은 SDK 설치 경로에 따라주세요.)
    clet2-2_10.png
  • 위와 같은 탭에서(사실 Link탭내 어느 분류에서든) 아래와 같은 직접 Project Options/def:"build.def" 을 추가적으로 입력해줍니다. def파일은 2강 문서내에서 확인하시기 바랍니다. (특별히 메뉴에서 선택/입력 방식으로 넣을 수 있는 항목이 안 보이는군요. 아시는 분 알려주시면 감사^^ 6.0 쓰던 시절에 전 dll 을 잘 몰랐다는 것이죠^^)
    clet2-2_11.png
  • 자 이제 대략 넣어야 할 것들이 들어간 것 같으니 한번 컴파일을 해보겠습니다. 단축키 F7 을 눌러 Build 하시던가, Build 메뉴에서 Rebuild All을 선택해서 빌드해보면....어라...왠 에러가...
    왜 에러가 나는지 해당 에러를 클릭해보면 아래와 같은 소스로 점프합니다. 오호...long long 을 인식 못하는거네요. 정확히 알아보지는 않았지만, 이 당시의 cl은(VC++의 컴파일러) 아마 long long 에 대한 인식을 못한 것 같습니다. 다행히 SDK 헤더파일을 만든 분이 미리 define을 정의해놔서 바로 위에 보이는 __int64 등으로 대체 할 수 있을 것 같네요. 실제 SDK 내의 IDE가 생성하는 프로젝트에서는 _VCDLL 을 사용하는데, 우리도 이 녀석을 사용해 보도록 하죠.
    clet2-2_12.png
  • 프로젝트 설정창을 다시 열어서 C/C++ >> Preprocessor 항목의 Preprocessor definitions 내에 _VCDLL 을 추가해 줍니다. 각 정의는 , 로 구분되어야 합니다.
    clet2-2_13.png
  • 이제 다시 컴파일해보죠.
    clet2-2_14.png
    빌드가 에러없이 잘 되네요. 오호 그런데 빌드창에 못 보던 ==== WIPI 1.2 Build... ==== 같은 글이 나오네요. 궁금하신 분은 잘 찾아보시면 _VCDLL 때문에 저런 문장이 출력된다는 것을 찾으실 수 있을 것입니다.^^ 어딘가 헤더에 숨어 있겠죠^^
  • 이제 2강의 내용에서 WIPI Binary Maker 를 이용해서 mif 파일을 만드는 방법으로 한번은 mif 을 만들어 주시고, 그 다음 아래와 같이 프로젝트 설정에 입력해서 다음 빌드부터는 자동으로 타겟 파일을 만들도록 해보겠습니다.
    프로젝트 설정 탭에서 맨 마지막(마구 오른쪽 화살표를 누르든지 해서^^)의 Post-build step 탭으로 이동합니다.
    그후 커맨드(command)에 빌드후에 실행할 명령을 입력해줍니다. 2강의 내용와 같이 C:\WIPI\Bin\BinMaker.exe /Macro=$(TargetDir)\helloclet.mif이라고 입력해줍니다. /* VS.NET 과 달리 빌드 매크로 $(TargetDir)은 실제로는 이 프로젝트에서는 .\Debug\ 로 대체됩니다. 즉 경로가 상대 경로가 나오죠. VS.NET 은 잘 보면 절대 경로를 넣어주는 걸 볼 수 있습니다. 사실 폴더 구성을 어떻게 하느냐에 따라 장단점이 있을 수 있습니다만, 아래 에뮬레이터 실행 커맨드에서와 같이 상대 경로를 이해하지 못하는 어플리케이션도 있으니 조심해야 할 부분입니다. */
    clet2-2_15.png
  • 이제 다시 빌드(Rebuild All)를 하면 아래와 같이 타겟 파일도 생성됨을 확인할 수 있습니다.
    clet2-2_16.png
  • 이제 에뮬레이터를 연결해보죠. 디버그를 하려면 에뮬레이터를 VC++에서 실행 시켜야 할테니깐요.
    프로젝트 설정 화면에서 Debug >> General 로 이동하셔서 아래와 같이 입력합니다.
    C:\WIPI\Bin\GigaEmulator.exe (SDK 설치 경로에 맞춰주세요.)
    /PATH=C:\Project\helloclet\Debug\helloclet /TYPE=smf /INSTALL (경로가 VS.NET과 달리 절대 경로로 직접 적어주었습니다. 왠지 VS 6.0에서는 이 경로에서는 매크로가 잘 안 먹는것 같네요. 경로의 마지막에는 타겟 파일의 이름만(확장자 빼고) 적어주는 겁니다.)
    clet2-2_17.png
  • 자 이제 F5 키를 눌러서 실행을 시도해보죠. 첫 실행시에는 아래와 같은 창이 뜹니다만, 가볍체 다음에는 안 볼래~를 체크해주시고 OK 누르고 사용하시면 되겠습니다.
    clet2-2_18.png

여기까지 VS 6.0 에서 SKT WIPI Clet 개발 환경 설정하는 법을 간단히 살펴보았습니다. 사실 몇가지 부분만 주의하면 VS.NET 설정때나 큰 차이는 없습니다. 어짜피 컴파일러와 링커에 전달되는 파라메터 옵션들을 제대로 넣어주고 빌드후에 해줘야 하는 부분과 실행에 필요한 설정등만 알면 꼭 Visual Studio 을 사용해야할 필요는 없을 수도 있죠.(물론 디버깅하려면 필요합니다.^^)


혹시 직접 설정해보시고 이상한 부분이 있거나 내용상 오류가 있다면 언제든지 알려주세요.


본 내용은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

분문의 오류나 오타등의 문의는 문의 게시판에 해주시기 바랍니다. 본 내용은 지속적으로 업데이트 될 수 있습니다.^^

Email : juno@evermore.pe.kr