BLOG main image
분류 전체보기 (466)
Yuno (232)
Travel (130)
Culture (46)
Other (11)
Programming (17)
Picture (22)

[필리핀,마닐라] 그린벨트 (Gr..
월풍도원(月風道院) - Delight..
Tamiflu and parvo.
Tamiflu and side effects.
[미국,라스베가스] 라스베가스..
월풍도원(月風道院) - Delight..
[미국,라스베가스,그랜드캐년]..
월풍도원(月風道院) - Delight..
[태국,방콕]태국 숙소,방콕 -..
월풍도원(月風道院) - Delight..
«   2012/02   »
      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      
1,474,818 Visitors up to today!
Today 62 hit, Yesterday 206 hit

'컴파일 오류'에 해당되는 글 1건
[Yuno.org, 2008/06/17 23:32, Programming/Development Story]

Visual Studio 2003을 쓰고 있기 때문에 만약 Visual Studio 2005 나 Visual Studio 2008에서는 이러한 문제가 없을지도 모른다. 하지만 난 오늘 Visual Studio 2003 때문에 고생을 좀 했다.

게임에 들어가는 UI 관련 그래픽 데이터를 별도의 툴 (아하 Skin Editor)에서 작업을 한다. Skin Editor에서 작업한 데이터는 바이너리 파일로 변환되어 Windows의 각 윈도우와 예하 컨트롤 처럼 바이너리 구조로 저장 된다.

그리고 저장된 바이너리 데이터의 구조를 게임 클라이언트에서 로드 할 수 있도록 별도로 클라이언트 코드에서 선언 할 수 있도록 enum 구조를 뱉어낸다. 클라이언트 프로그래머는 이것을 각 컨트롤 또는 윈도우의 클래스에 첨부 함으로써 클라이언트에서 UI를 윈도우 개념으로 핸들링 가능하게 된다.

그런데...................... 이건 뭥미? -_-

오늘도 새 UI 작업을 완료해서 저장을 하고 저장을 하고 컴파일을 하고 실행 하니 대뜸 나는 오류..

"더 이상 실행할 코드가 없습니다!" 응? 응? 응? 응? 그럼 니 뒤에 줄 서 있는 백만줄은 뭔데? 주석이냐?

...그때부터 싸움은 시작 됐다. 스킨과 관련 된거라는 경험에 의해서 확신이 들고 있었으므로 혹시 스킨을 핸들링 하는 클라이언트 코드에 Over Flow가 있는지 코드에서 변수와 각 메소드의 파라미터를 하나씩 까보기 시작했다.

없었다.

그렇다면 엄청나게 많기는 하지만 에러가 나는 부분이라고 생각 되는 몇 곳에 Break Point를 살며시 놔두고 코드를 따라가기 시작, 상위 Window 개념중에 하나인 Holder Count가 실제 Holder Count와 데이터 바이너리에서 로드한 Holder Count가 달라서 생긴 문제라는 사실을 확인. 일단 데이터 오류를 의심하고 다시 에디터를 통해 저장 해보았지만 역시나 이상 무.

젠장!

에디터 소스를 열고 에디터에서 저장되는 구조에서 문제가 없는지 확인했다. 역시 여기서도 모든 변수들이 충분한 크기를 예상하고 만들어져 있었다.

대체 뭥미?!

데이터를 Hex Editor에서 열어서 확인 해 볼까? 하는 고민중에..

문.득. 정말. 그냥 문.득.

전체 컴파일을 해보고 싶었다.


그리고 약 15분후.

이런 .................................

링크 하다가 오류가 난거던지, 아니면 일부 코드의 변화 여부를 파악 못해서 목적 파일이 예전 것임에도 불구하고 목적 파일을 생성 안해서 논리 오류가 난 것인지. 알 수는 없다. ( 후자라고 예상 하고 있다 )

하지만, 어쨋든 새 목적 파일을 새로 다 생성하고 난 후에 링크 한 바이너리는 에러 없이 쌩쌩 작동 되었다.

흑.

앞으로는 종종 '솔루션 전체 다시 컴파일' 버튼을 사랑해주어야 겠다. ㅠ_ㅠ.



--
육식동물 | 2008/06/18 09:39 | PERMALINK | EDIT/DEL | REPLY
하루에 10번이상 리빌드합니다.;;
특히 enum이나 define가 변할경우.. 잘 인식못합니다.
그래서 인크래드빌드를 쓰는데
인크래드빌드는 잘인식해서.. 사용되는 모든 소스를 빌드하는데..

VS 는.. 하나만 빌드합니다(;; 가끔다하기도하는데.. 소스가많아지면 찾지못하더군요..)
aaaa | 2008/06/18 13:02 | PERMALINK | EDIT/DEL | REPLY
인크리드빌드도 똑같은 현상의 버그가 있습니다. ^^
최재규 | 2008/06/18 16:04 | PERMALINK | EDIT/DEL | REPLY
저도 그런 경험이 있습니다. 그래서 항상 배포할 실행파일은 Rebuild All 을 하죠.
주노 | 2008/08/06 11:14 | PERMALINK | EDIT/DEL | REPLY
진짜 심각해 보이는 문제가 발생했는데.... 1-2시간 고민한 적도 많죠..^^
그러다 뤼빌드올!! 해결되면 욕나와요 ^^
2005쓰고 있는데.... 요즘 패치되서 덜 하긴 한데....
New Line Error 어쩌고 하는 것도 가끔 떠요.
에러나는 부분에서 엔터 한 줄 추가하면 빌드가 되더군요.
어차피 VS도 개발자들이 만들었는데... 버그 없겠습니까? ^^
그래도 수백만 줄 코드를 릴리즈해주는 것에 감사해야죠 뭐 ㅋㅋㅋ
Name
Password
Homepage
Secret
*1