RAD Studio项目编译失败:未解析外部引用及视图切换报错求助
RAD Studio项目编译失败及视图切换问题
编译错误信息
[ilink32 Error] Error: Unresolved external '__fastcall TTextEditorForm::FormGesture(System::TObject *, Fmx::Types::TGestureEventInfo&, bool&)' referenced from C:\USERS\ADMIN\DOCUMENTS\EMBARCADERO\STUDIO\PROJECTS\WIN32\DEBUG\DOCSTUT.OBJ [ilink32 Error] Error: Unresolved external '__fastcall TTextEditorForm::NewClick(System::TObject *)' referenced from C:\USERS\ADMIN\DOCUMENTS\EMBARCADERO\STUDIO\PROJECTS\WIN32\DEBUG\DOCSTUT.OBJ [ilink32 Error] Error: Unable to perform link
推测原因:误添加OnFormGesture事件处理程序后立即删除,导致事件绑定残留。
视图切换错误信息
切换设计视图与代码编辑器时出现以下错误:
[6F9B92B1]{rtl280.bpl } System.Classes.TInterfaceList.Clear (Line 5607, "System.Classes.pas" + 1) + $3 [6F8C39CC]{rtl280.bpl } System.@UStrSetLength (Line 31269, "System.pas" + 27) + $0 [6F8C3B80]{rtl280.bpl } System.@UStrCatN (Line 31641, "System.pas" + 67) + $0 [69FA10FB]{comptoolbar280.bpl} CompToolbarFrame.TComponentToolbarFrame.InitializePalette (Line 840, "CompToolbarFrame.pas" + 1) + $9 [69FA0A43]{comptoolbar280.bpl} CompToolbarFrame.TComponentToolbarFrame.EndUpdate (Line 659, "CompToolbarFrame.pas" + 13) + $6 [6EDC4293]{coreide280.bpl} PalMgr.TPaletteManager.EndUpdate (Line 1111, "PalMgr.pas" + 13) + $5 [6F01FE6B]{coreide280.bpl} EditorForm.TEditWindow.EndViewSelect (Line 4820, "EditorForm.pas" + 1) + $9 [6F018DD7]{coreide280.bpl} EditorForm.TEditWindow.SwitchViews (Line 2296, "EditorForm.pas" + 11) + $3 [6F0188D2]{coreide280.bpl} EditorForm.TEditWindow.ViewBarChange (Line 2136, "EditorForm.pas" + 10) + $10 [6E3A8701]{vcl280.bpl } Vcl.Tabs.TTabSet.CanChange (Line 1962, "Vcl.Tabs.pas" + 3) + $D [6E3A8751]{vcl280.bpl } Vcl.Tabs.TTabSet.SetTabIndex (Line 1973, "Vcl.Tabs.pas" + 5) + $4 [6E3A89D6]{vcl280.bpl } Vcl.Tabs.TTabSet.MouseDown (Line 2085, "Vcl.Tabs.pas" + 6) + $6 [6E1D8670]{vcl280.bpl } Vcl.Controls.TControl.DoMouseDown (Line 7730, "Vcl.Controls.pas" + 7) + $29 [6E1D6A1B]{vcl280.bpl } Vcl.Controls.TControl.SetMouseCapture (Line 6654, "Vcl.Controls.pas" + 2) + $6 [6E1D86BF]{vcl280.bpl } Vcl.Controls.TControl.WMLButtonDown (Line 7741, "Vcl.Controls.pas" + 7) + $E [6E1D802E]{vcl280.bpl } Vcl.Controls.TControl.WndProc (Line 7591, "Vcl.Controls.pas" + 91) + $6 [6E2E3338]{vcl280.bpl } Vcl.Themes.TStyleManager.HandleMessage (Line 5872, "Vcl.Themes.pas" + 11) + $11 [6E1DD1F5]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10644, "Vcl.Controls.pas" + 170) + $6
已尝试的无效操作
- 执行清理构建,问题未解决
- 使用RAD Studio命令行,提示项目不存在
- 右键错误信息选择查看源码,选项为灰色不可用
解决方法
针对编译错误(未解析外部符号)
- 清理DFM文件残留绑定:关闭RAD Studio,找到项目对应的
.dfm文件,用文本编辑器打开,删除所有包含OnFormGesture、NewClick的绑定行(如OnFormGesture = FormGesture),保存后重新打开项目编译。 - 检查代码文件声明:打开对应
.pas文件,删除TTextEditorForm类中残留的FormGesture、NewClick函数声明及空实现。
针对视图切换错误
- 重置IDE设置:关闭RAD Studio,运行
bds.exe -reset(或对应版本的启动命令)重置IDE默认设置,重启后尝试切换视图。 - 删除IDE缓存:找到RAD Studio缓存目录(一般在
C:\Users\<用户名>\AppData\Roaming\Embarcadero\BDS\<版本号>),删除目录内所有缓存文件和文件夹,重启IDE。
内容的提问来源于stack exchange,提问作者someoneraw
相关产品推荐
相关产品推荐

