C++빌더2007로 되어 있던 기존 프로그램을 2009로 마이그레이션하면서 이상한 현상이 있어 질문드립니다.
Firebird를 핸들링하기 위하여 IBPP라는 라이브러리를 사용하는데, 이 놈을 2009에서 컴파일 하면 용량이 2~3배 정도가 늘어나는 현상이 있습니다.
2007에서 컴파일하면 LIB파일 용량이 1.1메가 정도인데, 2009에서 컴파일하면 LIB파일 용량이 2.5메가 정도로 훨씬 커지네요. 당연히 컴파일된 LIB를 가지고 빌더하면 실행파일용량도 따라서 늘어 나더군요.
왜 그런가 살펴보니 , 각 CPP소스 파일을 컴파일한 obj파일 자체가 모두 커지더군요. 어떤 것은 비슷하고 간혹 조금 더 작이지는 파일도 있고, 어떤 것은 3배 넘게 커지는 놈이 있더군요.
아래 목록을 보시면, 컴파일된 용량이 좀 이상하다는 생각이 드실 것입니다.
( Release로 컴파일)
|
파일명 |
2007에서 컴파일 |
2009에서 컴파일 |
| IBPP.lib |
1,191,424 |
2,500,096 |
| array.obj |
58,007 |
197,576 |
| blob.obj |
48,212 |
145,506 |
| database.obj |
146,421 |
240,882 |
| date.obj |
24,628 |
46,893 |
| dbkey.obj |
96,696 |
120,403 |
| events.obj |
80,703 |
114,017 |
| exception.obj |
107,587 |
108,077 |
| row.obj |
208,542 |
531,698 |
| service.obj |
114,125 |
272,928 |
| statement.obj |
138,774 |
487,771 |
| time.obj |
20,574 |
22,130 |
| transaction.obj |
109,528 |
171,181 |
| user.obj |
20,424 |
20,677 |
| _dpb.obj |
11,056 |
11,285 |
| _ibpp.obj |
40,503 |
37,850 |
| _ibs.obj |
87,069 |
100,340 |
|
_rb.obj |
25,686 |
33,258 |
| _spb.obj |
18,348 |
17,901 |
컴파일러 버전이 달라졌다고, 이렇게 컴파일된 오브젝트 파일 용량이 달라지는 것이 정상적인 것인가요? 아니면, CB2009의 버그인지 궁금하네요. 아니면 제가 뭔가 잘 못 한 걸까요?
소스를 같이 올려드립니다. 혹시, 2009버전 가지고 계신분 테스트좀 부탁드립니다.
2009로 마이그레션하는데 생각보다 넘 힘드네요.
|