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

델파이 팁&트릭
Delphi Programming Tip&Tricks
[181] Indy 9.x 설치 방법 (컴맨드라인)
박지훈.임프 [cbuilder] 16748 읽음    2005-08-16 17:11
자료실에 올린 인디 9 버전에는 C++빌더에서 설치하기 위한 bpk 파일들이 없습니다. 또 델파이용의 dpk 파일도 4~7 버전
밖에 없어서 델파이 2005, 그리고 올해 내로 출시될 델파이 2006에서 설치하려면 파일을 수정해서 해당 버전용의 패키지
프로젝트를 만들어주어야 합니다.

컴포넌트 자료실에 여기에 필요한 파일들을 압축하여 올렸습니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=component&no=408

위 설치 파일에는 컴맨드라인에서 인디9 패키지 프로젝트를 컴파일하여 설치할 수 있게 해주는 파일들이 들어있습니다.
(이것은 인디9의 이전 버전 배포 파일에서 참고하여 수정한 것입니다)

그에 더하여, C++빌더와 델파이의 버전별로 같은 디렉토리에 패키지가 생성되게 하였습니다.
(예를 들면 C++빌더 6와 델파이 6의 패키지를 하나의 디렉토리에 생성하고 중복되는 파일들은 공유하는 것입니다)

설치 절차는 다음과 같습니다. 먼저 인디9 압축 파일을 풉니다. 예를 들어 C:\Libraries\Indy9 이라는 디렉토리를
선택한다면, 그 아래에 source 디렉토리를 만들고 거기에 인디9 소스 압축파일을 풀어놓습니다.
따라서 pas 파일 등 인디의 모든 파일들은 C:\Libraries\Indy9\source 디렉토리에 있게 되겠지요.

그리고 첨부한 Indy9Install.zip 파일의 압축을 풀어 포함된 파일들을 역시 위 source 디렉토리에 풀어놓습니다.
(dpk나 res 등 몇몇 파일들은 중복되며, 덮어써야 합니다)

다음으로 콘솔창(cmd.exe)을 열어 위 source 디렉토리로 갑니다. 거기서 설치하려는 C++빌더 혹은 델파이의 버전별
배치 파일을 실행합니다. 예를 들어 설치하려는 C++빌더/델파이의 버전이 6라면, FullV06.bat 파일을 실행합니다.
콘솔창에서 컴파일 메시지들이 주루룩 올라가고 나서 작업이 종료될 때까지 기다립니다.

배치 작업이 성공적으로 끝났다면, source 디렉토리의 상위 디렉토리 아래에 V06라는 디렉토리가 생성되어 있는 것을
보실 수 있을 것입니다. 이 디렉토리에는 각 인디 소스 파일들(.pas)로부터 생성된 .dcu, .hpp, .obj 파일들과 함께
패키지 프로젝트의 최종 결과물들인 dclindyxx.bpl, Indyxx.dcp, Indyxx.bpi, Indyxx.lib 파일들이 있습니다.
(런타임 패키지인 indyxx.bpl 파일은 윈도우 시스템 디렉토리로 옮겨져 있으므로 이 디렉토리에서 찾을 수 없습니다)

이들 파일들 중에서, dcu, dcp 파일은 델파이에서 사용되며, obj, hpp, lib 파일은 C++빌더에서 사용됩니다.
bpl 파일은 델파이와 C++빌더의 같은 버전에서 공유됩니다.

만약 시스템에 해당 버전의 C++빌더는 없고 델파이만 설치되어 있다면 lib 파일은 생성되지 않을 것입니다. 이 lib 파일은
tlib.exe에 의해 생성되는데, 이 유틸리티는 델파이에는 없기 때문입니다. 만약 C++빌더 개발자에게 소스를 제외하고
바이너리만 제공하려고 한다든지 하는 목적으로 lib 파일이 필요한데 현재 시스템에 C++빌더는 깔려있지 않다면, 간단히
tlib.exe만 델파이의 bin 디렉토리로 복사해넣고 배치 파일을 실행하면 됩니다. 가급적이면 델파이와 같은 버전의 C++빌더
tlib.exe가 좋겠지만 다른 버전이어도 별 상관은 없습니다.

각 배치 파일은,
FullV04.bat - 델파이/C++빌더 4 버전용
FullV05.bat - 델파이/C++빌더 5 버전용
FullV06.bat - 델파이/C++빌더 6 버전용
FullV07.bat - 델파이 7 버전용
FullV09.bat - 델파이 2005 버전용
FullV10.bat - 델파이 2006 버전용

이중 FullV07.bat과 FullV09.bat에는 해당 C++빌더 버전이 없지만, 그래도 C++빌더 버전 파일들을 생성해줍니다. --;;;;

아시다시피 곧 출시될 델파이 2006에서는 C++빌더와 델파이가 같이 포함되어 있는데, C++빌더와 델파이용의 패키지가
구분되어 각각 설치되지 않고 그냥 하나로 설치되기 때문에, 반드시 이와같은 방식(패키지를 C++빌더와 델파이가 공유)
으로 설치해야만 문제가 없을 것 같습니다.

어쨌든.. 이와 같이 패키지 컴파일이 끝나고 필요한 모든 파일이 생성되었더라도, 실제로 C++빌더나 델파이에서 설치된
상태는 아닙니다. 설치하려면 C++빌더나 델파이의 IDE로 들어가거나 혹은 레지스트리 에디터로 직접 수정할 수 있습니다.

여기서 중요한 것은, C++빌더나 델파이의 6 버전 이상에는 이미 인디가 설치되어 있어 먼저 반드시 이전 버전을 제거해
주어야 한다는 것입니다. 먼저 IDE를 띄워서 메인 메뉴의 Components -> Install Packages 다이얼로그에서, Design
Packages 그룹의 리스트에서 Internet Direct(Indy) for... 라고 되어 있는 인디 디자인 패키지를 등록 해제해줘야 합니다.

다음으로 인디 관련의 모든 파일들을 삭제해줘야 합니다. 삭제해주지 않으면 새로 설치한 바이너리 파일들과 이전의
바이너리 파일들이 꼬일 수 있습니다. (새로 설치한 파일을 참조해서 컴파일해야 하는데 이전 버전을 참조한다든지)
삭제할 파일이 좀 많은데... 델파이나 C++빌더 디렉토리로 가서, 찾기를 실행시키고 다음과 같은 파일 목록을 그대로
입력해서 검색합니다.
DCLINDY*.*;INDY.*;INDY??.bpl;INDY??.map;ID*.PAS;ID*.HPP;ID*.OBJ;ID*.DCU

상당히 많은 파일들이 검색되어 나올텐데, 불행히도 이 파일들을 모두 삭제해서는 안됩니다. 인디와는 무관한 파일들이
몇개가 같이 검색되어 나오기 때문입니다. 삭제해서는 안되는 파일들은 다음과 같습니다.
\Source 하위 디렉토리에 있는 IDPAS32.OBJ 파일
\Demos 디렉토리 밑에서 검색되어 나오는 파일들 (델파이 7 이상에서만 해당)

혹은, 프로그램 추가/제거 다이얼로그에서 C++빌더/델파이를 선택하고 설치 옵션을 수정하는 방법으로 인디를 제거할
수도 있습니다. 더 간편하고 실수의 염려가 적지만(직접 삭제는 엉뚱한 파일을 삭제할 수도..--) 대신 윈도우 인스톨러가
뜨고 설치 시디를 넣으라고 자꾸 조르는 등 저같이 성급한 개발자에게는 더 짜증나는 절차일 수 있습니다.

이제 델파이/C++빌더 IDE에서 설치할 수 있습니다. (물론 5 이전 버전이라면 인디가 기본 설치되어 있지 않으므로 위의
삭제 과정도 필요 없습니다) 아까 이전 버전을 등록 해제했던 다이얼로그, Install Packages 다이얼로그에서 이번에는
Add... 버튼을 눌러 컴파일된 디렉토리(V06 등)로 가서 dclindyxx.bpl) 파일을 선택합니다.

이제 설치가 완료되었습니다. 새로운 인디9 버전을 맘껏 쓸 수 있습니다...
라고 하고 싶지만 간단한 한가지 작업이 더 남았습니다.

잘 살펴보면 델파이나 C++빌더에 기본 설치된 인디 버전은 런타임 부분이 indy.dcp나 indy.bpl 등, 컴파일러의 버전이
명시되어 있지 않습니다. 그런데 우리가 새로 설치한 버전에는 버전명이 붙어서 indyxx.dcp, indyxx.bpl 이런 이름으로
되어 있을 것입니다. 이것은 패키지 프로젝트(bpk, dpk) 때문인데요. 굳이 정확하게 이름을 맞춰주려면 그렇게 할 수도
있기는 합니다만 그러려면 각 버전별 런타임 dpk가 이름이 같아지므로 디렉토리를 나눠줘야 하고.. 뭐 그런 성가신 문제가
생기기도 해서 그냥 뒀습니다. (디자인타임 패키지는 어떤 경우에도 버전명이 붙어 있습니다. dclindy60.bpl)

그냥 둬도 애플리케이션을 패키지를 포함하여 컴파일할 때는 상관 없습니다만, 런타임 패키지를 사용하는(따로 배포하는)
것으로 설정해서 컴파일하면 버전명이 안붙은 파일명의 파일이 없다고 에러가 날 것입니다. 이걸 해결하기 위해서는,
다시 위에서 언급한 Install Packages 다이얼로그에서 작업합니다. 앞으로 새로 만드는 모든 프로젝트에 적용되어야
하기 때문에 모든 파일을 닫은 후 Install Packages 다이얼로그를 엽니다. 아래쪽의 Runtime Packages 리스트에서
indy 항목을 찾아 indyxx로 바꿔줍니다. 델파이/C++빌더 6 버전이라면 indy60이 되겠지요.

그럼...
이정일 [onesided]   2005-11-29 10:18 X
자세한 설치방법 설명 먼저 감사 드립니다.
그런데 위 내용대로 설치작업을 하다가 IDPAS32.OBJ 파일을 그만 지워버렸는데요..
없어도 괜찮을지 모르겠네요.. - -;; 
혹시 반드시 필요한 파일이라면  업로드 부탁 좀 드리겠습니다. ^^
박지훈.임프 [cbuilder]   2005-12-03 17:46 X
IDPAS32.OBJ는 코바 관련 파일입니다.
코바를 쓰실 일이 없는 대부분의 개발자들에게는 필요 없는 파일이죠.
leo21c [leo21c]   2008-05-02 16:14 X
설치를 잘 해도 indy와 shlobj.h 헤더파일 꼬이는 문제가 발생합니다.
안나는 경우가 있는지 모르겠지만 저는 나더군요.

[C++ Error] winsock2.h(109): E2238 Multiple declaration for 'fd_set'

이럴 경우 아래 링크에 있는 방식으로 처리하면 해결이 됩니다.
현재 임프님과 클로닉스님 덕분에 Indy9를 C++Builder6.0에서 잘 사용하고 있습니다.

http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=43171

다른 분들도 이 글 보시고 잘 해결 하셨으면 좋겠습니다.

+ -

관련 글 리스트
181 Indy 9.x 설치 방법 (컴맨드라인) 박지훈.임프 16748 2005/08/16
(링크)     C++Builder Tip'N Tricks > Indy 9.x 설치 방법 (컴맨드라인)
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.