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

델파이 Q&A
Delphi Programming Q&A
[14128] Re:Re:Re:Re: 감사합니다!!! 빌더님!!
sudden [] 1847 읽음    2012-02-19 00:30
저도 컴파일 하다하다 안되서 해외사이트에 질문도 올리고 그랬지만 영양가 없는 답변만 올라와서
거의 포기상태였었는데 구세주를 만났군요. 해보니까 컴파일 잘되네요. 덕분에 저도 잘 쓰겠습니다.
감사합니다!!!! 빌더님!!!!




빌더 님이 쓰신 글 :
: 첨부한 그림은.. 8개의 패키지 전체가 컴파일 되고 인스톨 된 화면을 캡쳐한 겁니다.
:
: C:\MgPeak 를 기준 디렉토리로 사용했고, C:\MgPeak 루트 디렉토리에서 MgPeakXE2.groupproj 를
: 로드하면 런타임 패키지 4개, 디자인 타임 패키지 4개.. 도합 8개의 프로젝트가 올라올 겁니다. 거기서...
: MyPeakXE2 를 선택하고 Build All 하면 전체 패키지가 일괄적으로 컴파일 될 겁니다.
:
: 컴파일 된 후... 4개의 디자인 타임 패키지를 하나씩 인스톨 해주면 됩니다. 한번의 Install 만으로 4개의
: 디자인 패키지를 설치할 수 있게하는 스크립트 정의는 생략합니다.
:
: 예제 소스들을 컴파일 할 때는.. 예제 프로젝트의 옵션설정에서 Search path 에 C:\MgPeak\DCUs 를
: 추가해 주면 될 겁니다.
:
: 잠깐 사용해 봤는데.. 소스코드가 자잘한 버그들이 많네요. 소스코드 자체의 버그문제 같은 것들은
: 알아서 해결 하시고요.  이전에 설치한 패키지 파일들은 전부 Uninstall 하고 사용하세요.
:
: C:\MgPeak 디렉토리 하나 만들고, 거기다 첨부한 압축파일 풀어서 작업하면 될 겁니다.
:
: 파일 압축해서 올립니다.
:
:
: PS)
:
: 프로젝트 설정 변경으로 들어가서 나올 때 Cancel 버튼 누르고 나오면 프로젝트 설정 자체가 깨지는
: 버그가 있더군요. RAD XE2 만 그런건지 아닌지는 모르겠네요. 이런 버그가 있으니까... 패키지 프로젝트
: 설정화면으로 들어갔다 나올 때는 변경을 한게 없더라도 Cancel 버튼을 누르지말고 Ok 버튼 누르고 나오세요.
: 안그러면 RAD XE2의 버그로 설정이 깨집니다.
:
:
:
:
:
:
: 하두고 님이 쓰신 글 :
: : 빌더님 감사합니다.
: : 하지만 제 실력이 미천하다 보니 전체적인 내용이 이해는 되지만 그걸 어떻게 해야 할지를 모르겠습니다.
: : 다 된 밥 알아서 먹지도 못하니 밥상을 차려 달라고 하면 지나친 부탁일까요?
: : 하지만 제겐 너무 중요한 것이다보니 부탁 좀 드리겠습니다.
: :
: : 빌더 님이 쓰신 글 :
: : : 하두고 님이 쓰신 글 :
: : : : WindowsXP_Home에 DelphiXE2 정품을 구매하여 사용하고 있습니다.
: : : :
: : : : 빌더님 도움으로 구글 코드사이트에서 MustangPeak를 다운 받았습니다.
: : : :
: : : : 다운받은 컴포넌트는
: : : : CommonLIB, EasyListView, VirtualTreeView, VirtualShellTools
: : : : 이렇게 4개인데요.
: : : :
: : : : CommonLIB와 EasyListView는 이상없이 설치가 잘 되었습니다.
: : : :
: : : : 그런데 VirtualTree 설치 중
: : : : VirtualTreesD는 이상없이 컴파일이 되고 Install도 되는데요.
: : : :
: : : : VirtualTreesR을 Compile 하면 에러메세지가 나옵니다.
: : : : 이 에러메세지는 적어 놓지를 않았네요.
: : : : 그런데 이상한건 Compile할때 에러가 나던 것이 Build를 하면 에러가 안납니다.
: : : : 그리고 Build를 한 다음 Compile를 하면 이상 없이 진행되구요.
: : : :
: : : : 그런데 문제는 그 다음입니다.
: : : : 마지막으로 VirtualShellTools를 설치해야 하는데
: : : : VirtualShellToolsD16를 Compile하면
: : : : [DCC Fatal error] VirtualTreesR.dpk(39) : F2048 Bed unit format : 'C:\Mustangpeak\VirtualTreeView\Source\VirtualTrees.dcu' - Excepted version 23.0, windows unicode(x64)
: : : : 이렇게 나옵니다.
: : : :
: : : : 해외사이트의 도움을 받아
: : : : VirtualTreesR에서 {$IMPLICITBUILD OFF}를 {$IMPLICITBUILD ON}으로 수정하니 VirtualTreesD는 에러가 없어졌습니다.
: : : :
: : : : 이렇게 하고 VirtualShellTools를 다시 컴파일 하면
: : : : 이번에는
: : : : [DCC Fatal error] VirtualTreesR.dpk(1) : E2225 Never build package 'VirtualTreesR' must be compiled
: : : : 이렇게 나옵니다.
: : : : 물론 앞에서 'VirtualTreesR'는 컴파일이 되었는데도요.
: : : :
: : : :
: : : : 참고로
: : : : Tool->Options->Delphi Option->Library에서 [32bit Windows]의 [Library Path]에는
: : : : C:\MustangPeak\CommonLib\Delphi
: : : : C:\MustangPeak\CommonLib\Source
: : : : C:\MustangPeak\EasyListView\Delphi
: : : : C:\MustangPeak\EasyListView\Source
: : : : C:\MustangPeak\VirtualTreeView\Packages\Delphi XE2
: : : : C:\MustangPeak\VirtualTreeView\Common
: : : : C:\MustangPeak\VirtualTreeView\Source
: : : : C:\MustangPeak\VirtualShellTools\Delphi
: : : : C:\MustangPeak\VirtualShellTools\Source
: : : : 이렇게 추가했습니다.
: : :
: : :
: : :
: : :
: : : 답변...
: : :
: : :
: : : 무조건 컴파일 하고 보자는 식으로 빌드 부터 하지 말고, 패키지 소스코드를 확인해서 상호 의존관계 부터
: : : 파악하는게 순서일 겁니다. 서로 의존적인 관계를 갖고 있는 패키지들을 컴파일 할 땐, 빌드 순서가 중요
: : : 하니까요.
: : :
: : : {$IMPLICITBUILD ON} ... IMPLICITBUILD를 ON으로 해서 컴파일 하는 것은 결코 좋은 방법이 아닙니다.
: : : 특히 패키지들이 상호 의존적인 관계를 가질 땐.. 더욱 그렇죠. 설령 컴파일이 된다고 해도, 다음 단계의
: : : 빌드 과정에서 문제가 일어날 수 있기 때문입니다.
: : :
: : :
: : : [DCC Fatal error] VirtualTreesR.dpk(1) : E2225 Never build package 'VirtualTreesR' must be compiled
: : :
: : : 위와 같은 빌드에러는...  IMPLICITBUILD를 ON으로 설정하고 컴파해서 일어난 부작용으로 보입니다.
: : :
: : :
: : :
: : : [DCC Fatal error] VirtualTreesR.dpk(39) : F2048 Bed unit format :
: : :            'C:\Mustangpeak\VirtualTreeView\Source\VirtualTrees.dcu' -
: : :                 Excepted version 23.0, windows unicode(x64)
: : :
: : : VirtualTreesR 패키지가 명시적으로 타겟 플렛폼이 지정되지 않은 채 빌드되다 보니까...
: : : Win64 타겟 플렛폼으로 빌드 돼 버렸고, VirtualShellTools의 dcu 파일들과 오브젝트 속성이
: : : 서로 다르게 생성되어(32비트 dcu 파일과 64비트 dcu 파일의 충돌) 일어난 문제 같네요.
: : :
: : : VirtualTreesR (.dproj)에 정의되어 있는 부분
: : :
: : : <Platform Condition="'$(Platform)'==''">Win64</Platform>   // Default로 Win64로 되어 있음
: : :
: : :
: : : 런타임과 디자인타임 모듈간의 종속성... 그리고... 이런 종속성을 갖는 모듈들 서로가 또 상호 종속적인
: : : 관계를 가질 때는... 사용자가 빌드과정에 개입 해줘야 합니다.
: : :
: : : 마이크로소프트 사의 Visual Studio 같은 개발환경은... 이 부분이 아주 잘 되어 있죠. 사용자가 빌드과정을
: : : 의도대로 완전히 콘트롤 할수 있는 것은 물론이고, 심지어는 GCC 같은 컴파일러를 개발환경 자체에 통합
: : : 시키는 것도 가능하고요.
: : :
: : : 그에 비하면 Embarcadero사의 개발환경은 이런 부분이 취약합니다.
: : :
: : : RAD XE2 환경에선... 모듈간의 상호종속 관계에 따라서 수동으로 빌드하는 방식을 택하거나...
: : : 아니면 Build Events에서 Pre-build events 코맨드 스크립트를 정의해서 개입 하면 됩니다.
: : :
: : : 코맨드 스크립트를 정의해서 빌드하면... 개개의 패키지를 따로 install 할 필요 없이, 한번의 패키지 인스톨로 모든
: : : 패키지가 인스톨 되게 해주는 것도 가능하고요.

+ -

관련 글 리스트
14121 Delphi XE2에 MustangPeak 설치가 안됩니다. 도와주세요. 하두고 2777 2012/02/16
14125     Re: 상호 의존적인 다중 패키지 컴파일 빌더 3051 2012/02/17
14126         Re:Re: 빌더님 어떻게 해야 할지 모르겠습니다. 하두고 2202 2012/02/18
14127             Re:Re:Re: 패키지 컴파일 - 전체 파일 첨부 빌더 2289 2012/02/18
14132                 Re:Re:Re:Re: 패키지 컴파일 - 전체 파일 첨부 하두고 2042 2012/02/20
14128                 Re:Re:Re:Re: 감사합니다!!! 빌더님!! sudden 1847 2012/02/19
14122     Re:Delphi XE2에 MustangPeak 설치가 안됩니다. 도와주세요. sudden 1870 2012/02/16
14123         Re:Re:다운받은 MustangPeak올려드립니다. XE2에서 설치하는 방법 좀 알려주세요. 하두고 1971 2012/02/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.