카테고리 없음

[맥 OS] Delphi XE2 Firemonkey 샘플 앱이 MAC에서 실행되지 않음

행복을전해요 2020. 12. 13. 17:19

방금 Delphi XE2 평가판을 설치했는데 동일한 문제가 발생합니다. libcgunwind.1.0.dylib가 없어서 Mac OS X에서 FireMonkey 응용 프로그램을 시작할 수 없습니다.

그러나 나는 문제가 무엇인지 알고 있다고 믿습니다. 이 파일은 Delphi OSX 애플리케이션과 함께 배포 할 준비가 된 ($ BDS) \ Redist \ osx32 폴더 안에 있어야합니다. 그러나 전체 RAD Studio XE2 대신 Delphi XE2 제품 만 설치 한 경우 이러한 재배포 가능 파일이 누락됩니다 (예 : 전혀 설치되지 않음).

이 특정 파일이 문서에서 언급되는 모든 곳은 C ++ Builder와 관련이 있습니다. 따라서 이것이 정말로 문제라면 엠바 카데로 측에 대한 (그다지 작지 않은) 감독 일 것입니다.

질문에 답하기 위해-C ++ Builder XE2 평가판 또는 전체 RAD Studio XE2 패키지를 설치하면 이러한 재배포 가능 파일을 받아야합니다.

-------------------

Mac에서 PAServer가 설치된 디렉토리로 이동하면 libcgunwind.1.0.dylib가있는 것을 볼 수 있습니다.

설치 프로그램은 paserver.command 파일을 생성하여 도와줍니다. 이것을 사용하여 시작하면 위의 파일을 찾을 수 있도록 라이브러리 경로를 올바르게 설정해야합니다.

PAServer 위치를 이동 한 경우 적절한 경로로 paserver.command 파일을 수동으로 업데이트하고 실행하면됩니다.

-------------------

000169AD에서 런타임 오류 231

이것은 VMWare의 문제입니다. https://forums.embarcadero.com/message.jspa?messageID=393962를 참조 하십시오.

해결 방법은 FMX.Filter.pas를 프로젝트 디렉토리에 복사하고 다음을 수정하는 것입니다.

function FilterByName(const AName: string): TFilter;
var
  i: Integer;
  begin
    Result := nil;
      if Filters = nil then
          Exit;
            if GlobalUseHWEffects  then
              begin
                  for i := 0 to Filters.Count - 1 do
                        if CompareText(TFilterClass(Filters.Objects[i]).FilterAttr.Name, AName) = 0
                              then
                                    begin
                                            Result := TFilterClass(Filters.Objects[i]).Create;
                                                    Exit;
                                                          end;
                                                            end;
                                                            end;
                                                            
                                                            function FilterClassByName(const AName: string): TFilterClass;
                                                            var
                                                              i: Integer;
                                                              begin
                                                                Result := nil;
                                                                  if Filters = nil then
                                                                      Exit;
                                                                        if GlobalUseHWEffects  then
                                                                          begin
                                                                              for i := 0 to Filters.Count - 1 do
                                                                                    if CompareText(TFilterClass(Filters.Objects[i]).FilterAttr.Name, AName) = 0
                                                                                          then
                                                                                                begin
                                                                                                        Result := TFilterClass(Filters.Objects[i]);
                                                                                                                Exit;
                                                                                                                      end;
                                                                                                                        end;
                                                                                                                        end;
                                                                                                                        

dpr에서 GlobalUseHWEffects : = False를 설정합니다.

VMWare 및 에뮬레이션 그래픽 하드웨어

-------------------

여기에서 PA 서버를 설치해야합니다. 다음 지침을 따르십시오 . Mac OS X에서 PA 설치 및 실행

-------------------

원격 서버 시작에 대한 Embarcadero의 지침이 잘못된 것 같습니다. paserver.copmmand 파일을 사용하여 서버를 시작합니다. 그런 다음 내 프로젝트가 잘 실행되었습니다.

그런 다음 배포. 빌드 구성을 디버그 대신 릴리스로 변경하십시오. libcgunwind.1.0.dylib를 Redist \ osx32 디렉토리에 복사해야합니다. 그렇지 않으면 릴리스가 실패합니다. 그런 다음 빌드 / 릴리스를 다시 시도했습니다. "project".rsm 파일은 릴리스 디렉토리가 아닌 디버그 디렉토리에 있습니다. .rsm 파일을 배포 디렉토리 인 Deployed에 복사했는데 제대로 작동했습니다. 이것은 내 자신의 데모 프로젝트와 controlsDemo 프로젝트의 경우였습니다. 둘 다 같은 방식으로 작동했습니다.

약간 거친 시작이지만 모든 것이 작동합니다. Mac과 비슷하지 않기 때문에 컨트롤 데모에 메뉴 바를 추가 한 이유를 모르겠습니다. 메인 메뉴로 변경하면 모든 것이 잘 작동합니다.

계산서

-------------------

이 문제를 해결했습니다. 나는 '디버깅하지 않고 실행'인 ide에서 녹색 실행 버튼을 클릭했습니다.

옆에있는 실행 버튼을 클릭합니다. XE2에서는 노인들이 익숙한 실행 버튼입니다.

-------------------

cmd 창을 열고 다음 명령을 수행하여 Redist 폴더를 채워야한다고 생각하면 배치 관리자가 필요한 파일을 찾습니다.

C : \ Program Files (x86) \ Embarcadero \ RAD Studio \ 9.0 \ Redist> redistsetup 기본값

Deployment Manager에는 목록을 새로 고침 할 수있는 '조정'버튼이 있습니다.

-------------------

콘솔 "Hello, World"

release - works fine (Hello, World) appears in Platform Assistant
  

터미널 창 디버그-릴리스와 동일

빈 2D 양식

release - Runtime error 231 at 000169AD
  debug - seems to run (bouncing Spartan Helmet icon in dock) but
  

형태는 나타나지 않는다

빈 3D 양식

release - Platform Assistant terminal window shows "invalid pixel
  

format "및"invalid context "메시지가 나타나지만 폼이 나타나고 메뉴 모음에"Project1 "이 디버그에 포함됨-릴리스와 동일

이러한 오류는 가상 머신에 설치된 MacOS에서 애플리케이션을 실행한다는 것을 의미합니다. VM에 MacOS를 설치하면 라이선스와 충돌하므로 Embarcadero는 VM 환경을 지원할 계획이 없습니다.

-------------------

그냥 paserver .. 대신 paserver.command를 클릭하십시오. 작동합니다!

U는 paserver.command 내부의 마지막 줄 끝에 -password = (your password)를 추가 할 수도 있습니다 (마지막 "뒤에". 그러면 암호를 묻지 않고 시작됩니다.

-------------------

paserver의 paserver 경로 뒤에 공백이 있는지 확인하십시오. -password부품 앞에 명령 . 예를 들어, 내 암호는 firemonkey다음과 같습니다.

"/Users/firemonkey/Applications/Embarcadero/PAServer/paserver" -password=firemonkey

그런 다음 paserver.command파일 에서 paserver를 실행해야 합니다.

-------------------

RAD Studio 설치 경로에서 새로운 "Redist"폴더를 확인하십시오. 응용 프로그램에는 일부 파일이 필요합니다.

-------------------

paserver.command를 실행하면 첫 번째 문제가 해결되었지만 대부분은 누락 된 파일이라고 생각합니다.

배포를 확인하면 ($ BDS) \ Redist \ osx32 폴더의 libcgunwind.1.0.dylib 파일이 회색으로 표시되어 Mac의 PAServer에서 파일을 복사하고 새로 고쳤습니다. 이제 앱이 단독으로 잘 실행됩니다. :)

-------------------

PAServer 폴더에서 응용 프로그램을 복사하고 실행하기 만하면됩니다. PAServer를 설치하고 실행하려면 http://docwiki.embarcadero.com/RADStudio/XE2/en/Installing_and_Running_the_Platform_Assistant_on_the_Target_Platform#Mac%3a_Installing_and_Running_the_Platform_Assistant_.28paserver.29_on_a_Mac을 수행해야합니다.



출처
https://stackoverflow.com/questions/7415089