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
[112] [팁] IDETOBPR.EXE Option 정리
박지훈.임프 [cbuilder] 7497 읽음    2001-07-26 14:52
이 팁은 담비님(천리안 FREKBS)님이 99년 1월 3일에 천리안 프로그래머포럼에 올리신 것입니다.
담비님으로부터는 전제하여 올리는 데 대해 허락을 받았습니다.
좋은 정보를 공유하도록 허락해주신 담비님께 감사드립니다.

-----------------------------------------------------------------------
안녕하세요! 담비입니다.

본 문서는 IDETOBPR.EXE의 Option을 정리한 내용입니다. Borland C++ (version
4.x, 5.x) 에서 작성된 프로젝트를 C++ Builder용 프로젝트 화일로 변환시켜줍니다.

본 문서는 C++ Builder와 함께 제공되어지는 도움말 파일을 기초로 작성되었으며
내용상의 오류 혹은 추가 및 변경되어져야 할 사항을 발견하시면 메일 주시면
감사하겠습니다. 보내주신 내용은 검토 후 반영하여 다시 올리도록 하겠습니다.

  frekbs@chollian.net
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IDETOBPR 유틸리티는 Borland C++(versions 4 and 5)용 프로젝트 파일인 .IDE를
C++Builder용 프로젝트 파일 .BPR로 변환시킨다. 명령라인 문법은 다음과 같다.

  idetobpr [-v] filename.ide
VCL을 포함하지 않는 응용프로그램은 RTL, OWL, BIDS 라이브러리의 VCL을 사용하지
않은 버젼에 링크를 지시하여 .BPR파일을 생성하도록 -v 옵션을 사용한다.
VCL과 MFC 헤더파일은 호환성이 없기 때문에 MFC 프로젝트에는 자동적으로 -v옵션이
설정된다.

IDETOBPR은 다음의 절차에 따라 메이크파일을 생성한다.

  .IDE 파일에 있는 각각의 타겟을 위해 생성되어진 .BPR 파일로 구분된다. 만일
  .IDE 파일에 여러게의 타겟들이 존재한다면 IDETOBPR은 각 .BPR 파일을 호출하는
  .BPG(group) 파일을 생성한다. 만일 타겟이 EXE, DLL, ststic LIB가 아니라면
배치파일 타겟이 생성되어지고 생성되어진 .BPG 파일에 추가될것이다.
IDETOBPR는 .IDE 파일과 동일한 이름의 .CPP 파일을 찾는다. 그것은 프로젝트의
노드에 의존하여 표시하는 C++ Builder의 Project Manager에서 표시가 가능하도록
.CPP 파일에 다음의 줄들을 추가한다.(.CPP 파일은 주요한 부분을 수정한 후 백업
되어진다.)

  #include <condefs.h>

  USEUNIT("dependent .CPP filename")
  USEUNIT("dependent .CPP filename")
  :  // one for eached linked OBJ file

  USERC("dependent .RC filename")
  USERC("dependent .RC filename")
  :  // one for each RC file

  #define WinMain
  //for DLL targets, this is changed to '#define DllEntryPoint'

IDETOBPR가 .IDE파일과 동일한 이름의 .CPP파일을 찾을수 없다면 파일을 하나
생성한다. 생성된 .CPP 파일은 프로젝트의 노드들에 의존하여 표시하는 C++ Builder
Project Manager에 의해서만 사용되어진다. 만일 .IDE 파일과 동일한 이름의 .C
파일이 존재한다면 그 파일은 그대로 보존되며, 여전히 타겟을 생성하기위해
사용되어진다.
기본적인 프로젝트의 옵션들은  .BPR 파일에 복사되지 않는다. 이 옵션들은 C++
Builder에서 프로젝트가 오픈되어진 경우에 직접 추가되어질 수 있다.
인클루드, 라이브러리 패스 그리고 디파인 된것들 중 환경 변수들은 확장되어
참조한다. 이것은 BCROOT 환경변수를 위해서 특히 중요하다. 만일 BCROOT가
환경변수에 존재하지 않는다면 잘못된 메이크파일이 생성되어진다. 이경우
IDETOBPR은 경고를 발생한다. $env(BCROOT) 또는 라이브러리 패스와 인클루드에
포함된 BC5는 $(BCB)로 변경되어진다.  OWL과 BIDS 프로젝트를 위해서는 패스에
include\obsolete가 추가되어진다.

C++ Builder는 개개의 파일들이 가지는 옵션을 다루지는 못한다. 만일 IDETOBPR이
.IDE 파일의 노드들에 오버라이드(override)된 지역 옵션을 찾는다면 지역 옵션들을
무시하고 경고가 발생한다. .IDE 파일에 있는 소스의 집합들은 무너지게 된다.
적어도 명령라인에 -v 옵션을 포함하거나 MFC 프로젝트를 변환한다면 라이브러리
이름들은 다음처럼 변경되어진다.

──────────────────────────────────────
Source (.IDE)            Description                   Target (.BPR)
──────────────────────────────────────
    owlwf           OWL static                              owlwv
    owlwfi          OWL dynamic                             owlwvi
    owlwt           OWL multithreaded static                owlwv
    owlwti          OWL multithreaded dynamic               owlwvi
    owldwf          OWL static diagnostic                   owldwv
    owldwfi         OWL dynamic diagnostic                  owldwvi
    owldwt          OWL multithreaded static diag           owldwv
    owldwti         OWL multithreaded dynamic diag          owldwvi
    bidsf           BIDS static                             bidsv
    bidsfi          BIDS dynamic                            bidsvi
    bidst           BIDS multithreaded static               bidsv
    bidsti          BIDS multithreaded dynamic              bidsvi
    bidsdf          BIDS static diagnostic                  bidsdv
    bidsdfi         BIDS dynamic diagnostic                 bidsdvi
    bidsdt          BIDS multithreaded static diagnostic    bidsdv
    bidsdti         BIDS multithreaded dynamic diagnostic   bidsdvi
    cw32            RTL static                              cp32mt
    cw32i           RTL dynamic                             cp32mti
    cw32mt          RTL multithreaded static                cp32mt
    cw32mti         RTL multithreaded dynamic               cp32mti
    vcl             VCL static                              vcl
    vcld            VCL debug                               vcl
    nafxcw          MFC static                              nafxcw
    nafxcwd         MFC static diagnostic                   nafxcwd
    bfcs??          MFC static part of DLL                  bfcs42
    bfcs??d         MFC static part of DLL diagnostic       bfcs42d
    bfc??           MFC dynamic                             bfc42
    bfc??d          MFC dynamic diagnostic                  bfc42d
    bfco??d         MFC OLE DLL diagnostic                  bfco42d
    bfcd??d         MFC Database DLL diagnostic             bfcd42d
    bfcn??d         MFC Internet DLL diagnostic             bfcn42d
──────────────────────────────────────

만일 커맨드라인에 -v 옵션을 포함하거나 MFC 프로젝트를 컨버젼한다면, 단지 MFC와
VCL 라이브러리 이름들은 최종의 버젼들로 갱신되어지고 _NO_VCL이 매크로 정의
리스트에 추가되어진다. MFC 프로젝트에서 _MSC_VER=1100는 매크로정의의 리스트에
의존되어진다.(?)
데이타 정렬 스위치는 다음과 같이 전환되어진다.

─────────────────┬────────────────────
        Source (.IDE)              │          Target (.BPR)
─────────────────┼────────────────────
        -a4                        │          (none)
        (none)                     │          -a1
        -a2, -a8, -a16             │          -a2, -a8, -a16
─────────────────┴────────────────────
-a1 스위치는 OWL/MFC/VCL 이 아닌 응용프로그램에 추가되어진다.
(OWL, MFC, VCL은 모두 C++ Builder의 기본값인 -a4를 사용한다.)
IDETOBPR은 생성된 .BPR 파일에 기본으로 아래에 있는 컴파일러와 링커의 플래그를
on 시킨다. 다른 모든 옵션들은 .IDE 파일에 저장된 원래의 값들을 보존한다.

  Compiler: -Od -Hc -w -k -r- -y -v -vi- -c -b- -w-par -w-inl
  Linker: -x -v

IDETOBPR을 실행한 후 C++ Builder IDE에서 기본값을 변경할수 있다.

IDETOBPR는 -v 옵션이 지정된경우 단일 쓰레드 프로젝트에 -WM- 옵션을 추가하며,
Borland C++ 5.02 이후부터 멀티 쓰레딩은 기본값으로 되어졌다.(__MT__로 정의하며
-WM 옵션다.)



+ -

관련 글 리스트
112 [팁] IDETOBPR.EXE Option 정리 박지훈.임프 7497 2001/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.