C++ Builder 10 - 编译任何项目都会出错?
C++ Builder 10 - Compiling any project gives error?
我刚刚安装了 C++ Builder 10(西雅图)试用版,但现在在尝试编译任何(新的或现有的)VCL Forms 应用程序时遇到奇怪的错误。
这是全新安装,没有修改任何设置等。我正在使用 Windows 10. 如何解决这个问题?
我想我找到了解决办法。
- 转到Project/Options...
- 单击 "C++ Compiler" 并找到 "Use 'classic' Borland Compiler"
- 禁用它
在以前版本的 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'
要删除这些错误,请转至
- Project/Options...
- C++(共享选项)/库路径
- 删除“
$(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_wrapper
和 dbkFCallWrapperAddr
;参见错误详情)
- 将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,一切都很好。我的意思是,...和以前一样。
我刚刚安装了 C++ Builder 10(西雅图)试用版,但现在在尝试编译任何(新的或现有的)VCL Forms 应用程序时遇到奇怪的错误。
这是全新安装,没有修改任何设置等。我正在使用 Windows 10. 如何解决这个问题?
我想我找到了解决办法。
- 转到Project/Options...
- 单击 "C++ Compiler" 并找到 "Use 'classic' Borland Compiler"
- 禁用它
在以前版本的 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'
要删除这些错误,请转至
- Project/Options...
- C++(共享选项)/库路径
- 删除“
$(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_wrapper
和dbkFCallWrapperAddr
;参见错误详情) - 将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,一切都很好。我的意思是,...和以前一样。