从其它平台迁移而来
在使用Lazarus编写动态库的过程中遇到了报Error: Undefined symbol:错误的问题,死活编译不过去,加了LCL包依赖也不行,找了N久终于在一个英文网站上找到了解决办法。
Error: Undefined symbol:错误会依据所写的代码用到的单元不同而有一定的差异,我遇到的报错大致如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
project1.lpr(18,1) Error: Undefined symbol: WSRegisterCustomImageListResolution
project1.lpr(18,1) Error: Undefined symbol: WSRegisterMenuItem
project1.lpr(18,1) Error: Undefined symbol: WSRegisterMenu
project1.lpr(18,1) Error: Undefined symbol: WSRegisterMainMenu
project1.lpr(18,1) Error: Undefined symbol: WSRegisterPopupMenu
project1.lpr(18,1) Error: Undefined symbol: WSRegisterDragImageListResolution
project1.lpr(18,1) Error: Undefined symbol: WSRegisterLazAccessibleObject
project1.lpr(18,1) Error: Undefined symbol: WSRegisterControl
project1.lpr(18,1) Error: Undefined symbol: WSRegisterWinControl
project1.lpr(18,1) Error: Undefined symbol: WSRegisterGraphicControl
project1.lpr(18,1) Error: Undefined symbol: WSRegisterCustomControl
project1.lpr(18,1) Error: Undefined symbol: WSRegisterScrollingWinControl
project1.lpr(18,1) Error: Undefined symbol: WSRegisterScrollBox
project1.lpr(18,1) Error: Undefined symbol: WSRegisterCustomFrame
project1.lpr(18,1) Error: Undefined symbol: WSRegisterCustomForm
project1.lpr(18,1) Error: Undefined symbol: WSRegisterHintWindow
|
其实之前已经离解决问题很近了,只需再uses一个Interfaces,即:
-
在Project Inspector的Required Packages里添加LCL包
-
在工程单元的uses列表里添加Interfaces单元