我正在开发使用某些STL方法的自定义控件。这是我在尝试使用此组件编译项目时遇到的错误:
[ILINK32 Error] Error: Unresolved external 'std::numeric_limits<double>::min()' referenced from C:\DOCUMENTS AND SETTINGS\ALL USERS\DOCUMENTS\RAD STUDIO\8.0\DCP\INSTALLCMP.LIB|VctDiag2.cpp
奇怪,因为我在设计模式下使用此组件没有丝毫问题。
答案 0 :(得分:1)
我设法通过以下步骤解决了这个问题。我打开了项目选项对话框(在自定义组件项目中)并导航到 C ++链接器页面。然后取消选中 Link with Dynamic RTL 选项。这导致链接库(静态或动态)中的所有方法都被插入到可执行文件中(或者在我的情况下插入到自定义组件库MyComponent.lib中)。因此,链接主项目时不需要其他文件。然而,我不完全理解我应该做些什么来避免STL代码的两面性。我在主项目中也使用了同样的功能。在我看来,现在这个功能在MyProject.exe中是两次。首先来自链接MyComponent.lib,第二次像往常一样将已使用的方法链接到可执行文件。