C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[563] 컴포넌트 필요없어 지웠는데 파일크기는 줄지 않네??
김태선 [jsdkts] 8557 읽음    2006-01-12 09:56
예를 들어
트레이아이콘 동작이 필요해 샘플탭의 TTrayIcon 컴포넌트를
디자인하는 윈도에 떨군뒤 작업하다가... 아.. 필요없어도 되겠다 싶어
화면 디자인 윈도에서 컴포넌트를 지웁니다.
그런데 컴파일 한 결과물은 컴포넌트를 포함했을 때와 마찬가지로
한 100k 이상 실행화일 크기가 커진채 그대로 있네요.
그래서
#pragma link "trayicon"
트레이아이콘 오브젝트를 링크하는 부분을 지우고
#include "trayicon.h" 도 지우고, (헤더는 파일크기와 상관없지만 link 옵션이 있을수도 있고 쓰지 않는 include하는 것 자체가 좋지 않은 습관이라서)
다시 컴파일 해봐도 안 줄어 듭니다.
전혀 필요없는 라이브러리가 붙어 떨어지지 않는 겁니다.

컴포넌트 필요없어 지웠는데 파일크기는 줄지 않네??

볼랜드가 스마트링킹 기술을 확보한 것은 TC 2.0 이전부터인데...
왜 스마트링킹이 안되는거야?

이런 경우는 *.bpr 파일을 다른 에디터로 열어서 보면
    <LIBRARIES value="rtl.lib vcl.lib bcbsmp.lib vclx.lib"/>
    <SPARELIBS value="vcl.lib rtl.lib bcbsmp.lib vclx.lib"/>
이 문제의 원인임을 즉시 알수 있습니다.

bcbsmp.lib  샘플컴포넌트 오브젝트들
vclx.lib 크로스플랫폼용 VCL 사용시 필요한 라이브러리.

보통 vclx.lib 는 물론 필요없고
샘플 탬에 있는 컴포넌트를 안 쓸 의도이므로 bcbsmp.lib 도 물론 필요없습니다
위 2 줄에서 2항목을 모두 지우고 저장하고
빌더에서 다시 프로젝트를 로딩해서 컴파일 합니다.

그러면 트레이아이콘 컴포넌트를 추가하기전의 크기로 돌아갑니다.

이 예는 트레이 아이콘을 가지고 설명한 것인데, 다른 경우도 마찬가지입니다.

C++ 환경의 복잡성으로 스마트링킹 서비스가 원하는대로 동작하지 않는 것은 아쉬우나
이렇게 수동으로라도 처리를 할 수 있다는 것은 다행한 일입니다.   ㅡ..ㅡ;

+ -

관련 글 리스트
563 컴포넌트 필요없어 지웠는데 파일크기는 줄지 않네?? 김태선 8557 2006/01/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.