【问题标题】:BDS Abnormal Program termination (macOS build)BDS 异常程序终止(macOS 构建)
【发布时间】:2018-09-26 00:26:08
【问题描述】:

我使用的是 Delphi 10.2.3。昨天我正在为 OSX 构建没有问题(我想)。现在,每次我尝试为 OSX(OSX 10.14 的 SDK)进行构建时,我都会收到异常程序终止,并且 BDS 被吹走。有时我会收到 List Index Out of Bounds (48) 错误 - 如果我没有激活 10.14 SDK。当然,如果我让它激活,BDS 就会被异常程序终止所震撼

现在这是 100% 可重复的。我认为安装可能已损坏,但我没有看到任何修复选项,只是完全卸载并重新安装,如果可以的话,希望避免这种情况(甚至不确定是否会解决问题)。

我在 10.2.3 版本中看到了一个应该已修复的问题:

RSP-19828: 为 OSX 编译会导致“程序异常终止”(bds.exe) 编译器、编译器\Delphi、FireMonkey

但是这个问题只是客户端 macOS 系统上没有安装 XCode。我可以确认 XCode 正在 macOS VM 上运行,并且之前使用 Delphi 10.2.3 创建的应用程序可以部署并运行,所以发生了一些变化,但我不知道是什么?或者更重要的是,如何找到它。

因为这是几天前的工作,即。我可以构建并部署到 macOS(请参阅我的另一个问题 WRT 让 Dylib 做出响应),我已经将 VM 绕回一周左右到较早的快照以确保,但仍然出现错误。代码很简单,一个带有按钮的屏幕,两天前运行良好,我仍然拥有在 macOS VM 上构建和部署的版本。所以那种指向macOS方面?所以我用我的物理macbook(上周再次工作)尝试了它,并且在构建时完全相同,程序异常终止并且BDE被吹走。那么,回到第一方,显然我在 Windows/Delphi 方面做错了什么?

作为测试,我创建了一个没有任何内容的全新项目,即只是一个空白屏幕。每当我尝试编译或构建时,它都会将 BDS 吹走。这是一个绝对的b1ocker。我已经在 Embarcadero 网站上发布过,但到目前为止还没有。

FWIW、Delphi 10.2.3 和 OSX SDK 是 10.14,根据 Embarcadero 文档是正确的。

有什么办法可以克服这个问题吗?

谢谢, 凯文

【问题讨论】:

  • 我编辑了你的标签。你没有使用 XE。
  • 尝试删除 Mac 上的 scratch-dir 文件夹,例如:/Users/Kevin/PAServer/scratch-dir(其中“Kevin”是用户名)
  • 在 Mac 更新 xcode 和命令行工具(真正的 MAC,而不是 vm)之后,我从今天开始遇到完全相同的问题。现在,每当我尝试为 osx 编译时,我也会得到异常程序终止和 IDE 就消失了。这与MAC本身无关。即使 MAC 关闭,它也会这样做,它无法使用 10.14 sdk 为 OSX 编译/链接。
  • @David Heffernan,谢谢
  • RE: delete scratch-dir 谢谢,试过了@Softtouch,好(对你不好)这就是我要去的地方。 XCode 更新 (10) 规定了 SDK (10.14),这就是我认为已经改变的地方。我使用的是 SDK 10.13.6。所以我认为 SDK 10.14 坏了(对于 Delphi)。我已将我的 macOS VM 上的 High Sierra 恢复到 10.13.6,但这并没有改变 SDK Xcode 生成的 (10.14)。所以我删除了 Xcode 10 并安装了 Xcode 9.4.1 (IIRC),它为 10.13.6 构建了 SDK(来自这里:developer.apple.com/download/more)。如果它修复了什么,我会告诉你的。

标签: macos delphi delphi-10.2-tokyo


【解决方案1】:

我可以确认 XCode SDK 10.13 WORKS 和 XCode SDK 10.14 Dos 不工作。

注意事项:

  1. 可以安装不同版本的 XCode 同时,我没有
  2. XCode 版本 9.4.1 可能会在 High Sierra 10.14,我将我的虚拟机回滚到 High Sierra 10.13.6 确定

编辑:我可以确认使用 SDK 10.13 生成的应用可以在 High Sierra 10.14 上运行(因此无需将您的 VM 从 10.14 回滚到 10.13.6)。

这是我做的,一步一步:

在 macOS 虚拟机上:

  1. 将 macOS 虚拟机回滚到 High Sierra 10.13.6
  2. 已安装 XCode 9.4.1(生成 SDK 10.13.6)
  3. 为 XCode 9.4.1 安装了 XCode 命令行工具
  4. 已删除文件夹 PAServer\scratch-dir
  5. 启动 PAServer

在开发虚拟机上

  1. 已删除 OSX 10.14 SDK
  2. 添加了(现在的)OSX 10.13 SDK
  3. 创建了一个简单的项目(只是一个表单)
  4. 构建那个项目
  5. 部署该项目

在 macOS 虚拟机上:

  1. 找到 Project.app
  2. 运行了这个项目并且成功了

我重复了一个更复杂的项目的构建和运行,它运行良好,没有异常程序终止 (BDS) 错误的迹象。

【讨论】:

  • 是的,我使用 cmdline 工具删除了 xcode 10,使用匹配的 cmdline 工具手动安装了 xcode 9.4.x,它工作正常。我在真正的 MAC 而不是 VM 上运行 osx 10.14 high sierra,所以它是 10.14 SDK 在链接期间导致问题(编译正常,但是当它链接时它会杀死 IDE)。
猜你喜欢
  • 2017-06-12
  • 2017-07-04
  • 2016-10-07
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
相关资源
最近更新 更多