【问题标题】:C++ Builder 10 - Compiling any project gives error?C++ Builder 10 - 编译任何项目都会出错?
【发布时间】:2016-01-07 12:35:37
【问题描述】:

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

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

【问题讨论】:

  • 向供应商寻求支持
  • 现在重新安装看看是否有帮助...
  • 您是否正在构建一个 64 位应用程序?在 Delphi 10 Seattle 中有一些 64 位编译器无法正常工作的报告(即使代码没有更改,每次都会生成不同的编译结果)。我认为 64 位 C++ 编译器也可能会受到此影响。
  • 重新安装。不适用于 32 位和 64 位。
  • 无法提交报告。 QC 在提交时返回数据库错误。太棒了! Embarcadero 的一切都陷入混乱。

标签: delphi ide c++builder c++builder-10-seattle


【解决方案1】:

我想我找到了解决办法。

  1. 转到项目/选项...
  2. 点击“C++ Compiler”,找到“Use 'classic' Borland Compiler”
  3. 禁用它

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

未解决的外部“___seh_personality_v0”未解决的外部 '__Unwind_SjLj_Register' 未解决的外部 '___cxa_begin_catch'
未解决的外部 '___cxa_rethrow' 未解决的外部 '___cxa_end_catch' 未解决的外部 '__Unwind_SjLj_Unregister'
未解决的外部 '__Unwind_Resume' 未解决的外部 '___cpp_terminate'

要删除这些错误,请转到

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

【讨论】:

    【解决方案2】:

    这是错误 RSP 11768,我怀疑它会在更新 1 中修复。另请参阅 this forum thread

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

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

    【讨论】:

      【解决方案3】:

      当我安装 旧版 RAD Studio 在安装了较新版本后时,我发生了这种情况。就我而言,我在安装 XE10 之后安装了 XE2。

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-18
        • 2017-01-07
        • 1970-01-01
        相关资源
        最近更新 更多