Delphi XE2 Firemonkey示例应用程序未在MAC上运行

Raf*_*cci 17 delphi macos delphi-xe2 firemonkey

我试图在Mac上运行示例Firemonkey应用程序,但我在mac中收到此消息:

dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
  Reason: image not found
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
  Reason: image not found
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我使用本教程添加OSX平台:

新Mac和Rad Studio XE2

编辑

有关错误的更多信息:

Process:         Teste2 [34270]
Path:            /Users/User/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-VM/Teste2.app/Contents/MacOS/Teste2
Identifier:      Teste2
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  launchd [94]

Date/Time:       2011-09-01 19:36:26.246 +0100
OS Version:      Mac OS X 10.6.8 (10K540)
Report Version:  6

Interval Since Last Report:          3908 sec
Crashes Since Last Report:           4
Per-App Crashes Since Last Report:   4
Anonymous UUID:                      58C242CA-C324-4A23-86ED-96D93C7C1A84

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread:  0

Dyld Error Message:
  Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/User/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-VM/Teste2.app/Contents/MacOS/Teste2
  Reason: image not found

Binary Images:
0x8fe00000 - 0x8fe4163b  dyld 132.1 (???) <4CDE4F04-0DD6-224E-ACE5-3C06E169A801> /usr/lib/dyld

Model: VMware Virtual Platform, BootROM 6.00, 1 processor, 30 GHz, 1 GB, SMC 1.30f3
Graphics: VMware SVGA II, VMware SVGA II, PCI, 16 MB
Network Service: Ethernet, Ethernet, en0
Parallel ATA Device: VMware Virtual IDE CDROM Drive
SCSI Device: SCSI Target Device @ 0
USB Device: VMware Virtual USB Hub, 0x0e0f  (VMWare, Inc.), 0x0002, 0x00200000 / 3
USB Device: VMware Virtual USB Keyboard, 0x05ac  (Apple Inc.), 0x020b, 0x00210000 / 4
USB Device: VMware Virtual USB Mouse, 0x0e0f  (VMWare, Inc.), 0x0003, 0x00100000 / 2
Run Code Online (Sandbox Code Playgroud)

编辑

一些截图:

应用配置

PaServer正在运行

Gor*_*dar 11

我刚刚安装了Delphi XE2试用版,我遇到了同样的问题 - 由于缺少libcgunwind.1.0.dylib而无法在Mac OS X上启动FireMonkey应用程序.

但是,我相信我知道问题是什么.此文件应位于($ BDS)\ Redist\osx32文件夹中,随时可与Delphi OSX应用程序一起部署.但是,如果您只安装了Delphi XE2产品而不是完整的RAD Studio XE2,那么这些可再发行的文件将会丢失,例如根本没有安装.

无论文档中提到此特定文件,它都与C++ Builder有关.因此,如果这确实是问题,那么对Embarcadero方面的监督可能是(不是那么小).

要回答您的问题 - 我相信如果您安装C++ Builder XE2试用版或整个RAD Studio XE2程序包,您应该获得这些可再发行的文件.

  • 好的,我设法让它工作.如果您在Mac上安装了PAServer,则libcgunwind.1.0.dylib位于Mac上的Embarcadero/PAServer文件夹中.我将此文件复制到我的Windows机器到($ BDS)\ Redist\osx32文件夹,并从Delphi XE2中再次部署项目,它现在正确复制了该文件.或者,也可以尝试将库文件复制到Mac上系统路径环境变量范围内的某个位置. (2认同)

小智 6

如果你去Mac上安装PAServer的目录,你会发现那里有libcgunwind.1.0.dylib.

安装程序尝试通过创建paserver.command文件来提供帮助.如果使用此方法启动,则应正确设置库路径,以便找到上述文件.

如果您已移动PAServer位置,只需使用适当的路径手动更新paserver.command文件并运行即可.


net*_*ecz 5

运行时错误231在000169AD

这是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;
Run Code Online (Sandbox Code Playgroud)

并在dpr中设置GlobalUseHWEffects:= False;

这是因为VMWare和仿真图形硬件