我使用 RAD Studio 10 Seattle 创建了一个新的 VCL 表单。
我在设计时添加了一个 NotificationCenter。然后我编译它并成功运行它。
但是当我做了以下两个步骤时:
1. 去
项目 -> 选项 -> C++ 链接器
并取消选中“与动态 RTL 链接”选项。
2.去了
项目 -> 选项 -> 包 -> 运行时包
并取消选中“与运行时包链接”选项。
未选中这些选项是为了使 .exe 独立,即能够在没有 IDE 的情况下执行 .exe 文件。因此,当取消选中这些选项时,所有库和包都链接到 .exe 文件。
但是现在当我编译它时,在链接阶段它给了我以下错误:
[ilink64 Error] Error: Unresolved external 'SHStrDupW' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.Notification.o
[ilink64 Error] Error: Unresolved external 'WindowsDeleteString' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|Winapi.UI.Notifications.o
[ilink64 Error] Error: Unresolved external 'RoInitialize' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.WinRT.o
[ilink64 Error] Error: Unresolved external 'RoUninitialize' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.WinRT.o
[ilink64 Error] Error: Unresolved external 'WindowsGetStringRawBuffer' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.WinRT.o
[ilink64 Error] Error: Unresolved external 'WindowsCreateString' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.WinRT.o
[ilink64 Error] Error: Unresolved external 'RoGetActivationFactory' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.WinRT.o
[ilink64 Error] Error: Unresolved external 'RoActivateInstance' referenced from D:\PROGRAM FILES\EMBARCADERO\EMBARCADERO\STUDIO\17.0\LIB\WIN64\RELEASE\RTL.A|System.Win.WinRT.o
所以我搜索了我的
Embarcadero/17.0/
第一个链接器错误中的参考目录,SHStrDupW
并找到三个扩展名为 .h 或 .hpp 的文件,并将它们包含到我的项目中,但结果相同。
有谁知道如何修复这个错误,我会很感激各种帮助?:)
PS:我为win32或win64操作系统编译它并不重要。