0

我已经卸载了我的 RAD Studio 10.2.2 并在我的 Win10 开发 VM 中安装了 10.2.3。在此过程中,我卸载了所有以前的第 3 方库,包括 Jedi GetIt 包,并按照说明删除了所有旧的 Jedi 源和 DCP/DCL。我正在尝试通过 GetIt 将它们安装回 10.2.3。JCL 库安装正常,但是当我尝试安装 JVCL 时,安装批处理文件在编译安装程序后挂起,VM 崩溃。我重新启动,启动 taskmgr 并观察批处理文件运行 - 它似乎进入了一个循环,创建了许多 msgfmt 实例。我已经尝试再次删除它,自己下载并安装 3.8 版本并自行运行安装批处理文件,同样的问题;然后备份到已经在 10.2.2 中安装好的 3.6 版本,它做同样的事情。如果我编辑批处理文件以跳过语言设置部分,批处理文件可以完成,但尝试重新运行 GetIt 更新会导致它重新下载并替换该批处理文件。:(

安装程序在到达批处理文件的语言部分之前会编译,所以我尝试直接运行安装程序。我假设我没有传递它需要的 cmd 行信息,因为它可以很好地编译 64 位库,但在编译 32 位版本的 JvCore250.bpl 时会立即阻塞,并出现未指定的编译错误。

还有其他人遇到这个吗?解决方案是否已知?

4

2 回答 2

1

事实证明最终是一个路径问题。当一台机器上存在多个 IDE 安装时(例如,我的 VM 上有或以前有 D2007、XE2 和 10.1),PATH 环境变量可能太长 - 编辑系统中的 PATH 以删除旧的/陈旧的路径。然后确保 IDE 中的库路径包含$(BDSLIB)\$(PLATFORM)\release,否则在构建包时会出现“找不到 RTL”。

于 2020-02-19T00:08:26.337 回答
0

对我来说,问题是由 dxgettext 的 msgfmt.exe 产生的。msgfmt.exe 生成多语言消息,为 jvcl 安装提供多语言支持。

对于 msgfmt.exe 的具体问题,请尝试查看:dxgettext and Windows 10

我解决了这个问题,打开 jvcl 文件夹中的 install.bat 文件,我在执行 msgfmt 的每一行都注释了(用 ::)。

注意:如果你使用getit我想你必须打开下载jvcl的文件夹并搜索install.bat(我没有使用getit)

相反,我直接从我的组件文件夹中的 github 下载了 jvcl,然后我做了上面在那个文件夹中写的内容。

于 2021-03-18T11:54:22.637 回答