从其它平台迁移而来
在使用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
单元