在XE5中获得以下链接器错误的许多版本。

[ilink32 Error] Error: Unresolved external '__stdcall System::UnicodeString::~UnicodeString()' referenced from <Location>


从到目前为止的所有内容看,似乎我的项目设置中的包含结构有问题,无法访问所有字符串方法的实际定义位置,但是对于我自己,我无法确定在哪里这些应该是。

最佳答案

此问题与包含无关。包含问题仅影响编译器。您的项目使用的是UnicodeString类,因此编译器会根据在UnicodeString中声明的方式生成对ustring.h方法的引用,这会使编译器保持满意状态。

相反,您得到的是链接器错误,因为它无法解析编译器生成的引用。这意味着您的项目缺少对实现实际UnicodeString方法主体的Embarcadero RTL库的必需引用。这可能表明您的项目一开始创建/导入不正确,或者已损坏。您可能必须从头开始重新创建项目,以便使用默认的库引用,然后将现有代码文件重新添加到该新项目中。

09-04 10:19