C++ Builder 10 - 编译任何项目都会出错?

C++ Builder 10 - Compiling any project gives error?

我刚刚安装了 C++ Builder 10(西雅图)试用版,但现在在尝试编译任何(新的或现有的)VCL Forms 应用程序时遇到奇怪的错误。

这是全新安装,没有修改任何设置等。我正在使用 Windows 10. 如何解决这个问题?

我想我找到了解决办法。

  1. 转到Project/Options...
  2. 单击 "C++ Compiler" 并找到 "Use 'classic' Borland Compiler"
  3. 禁用它

在以前版本的 C++ Builder 中构建的现有项目中,这可能会导致以下链接器错误:

Unresolved external '___seh_personality_v0' Unresolved external '__Unwind_SjLj_Register' Unresolved external '___cxa_begin_catch'
Unresolved external '___cxa_rethrow' Unresolved external '___cxa_end_catch' Unresolved external '__Unwind_SjLj_Unregister'
Unresolved external '__Unwind_Resume' Unresolved external '___cpp_terminate'

要删除这些错误,请转至

  1. Project/Options...
  2. C++(共享选项)/库路径
  3. 删除“$(BDS)\lib\win32\release\

这是错误 RSP 11768, which I suspect will be fixed in Update 1. See also this forum thread

该错误报告中有许多解决方案:

  • 添加borlndmm.dll到延迟加载列表;有问题的方法从未被调用过,所以找不到它不会导致运行时错误
  • 使用 impdef,为内存管理器创建一个新的导入库(borlndmm.dll / memmgr.def,并删除两个导出(__dbk_fcall_wrapperdbkFCallWrapperAddr;参见错误详情)
  • 将memmgr.lib替换为XE8的版本

当我安装 较旧 版本的 RAD Studio 在已安装较新版本 时,这发生在我身上。在我的例子中,我在安装 XE10 之后安装了 XE2。

在我的 Windows PATH 中更新版本 (XE10) 的目录

例如:C:\Program Files (x86)\Embarcadero\Studio.0\bin

在旧版本 (XE2) 的目录之后列出

例如:C:\Program Files (x86)\Embarcadero\RAD Studio.0\bin

因此找到了 borlndmm.dll 的旧版本,而不是实际版本。

所以我只是将较新的 PATH 记录移到较新的记录前面,重新启动 RAD Studio,一切都很好。我的意思是,...和以前一样。