XE2 链接错误. 是bug还是什么,怎么解决?
想用一下 cryptopp 库,下载后,就用XE2 update1 编译了工程(该工程是cryptopp 官方建立的)。
生成 cryptlib_bds.lib
然后 另外建立一个工程myproject, 调用 cryptlib_bds.lib 里的加密类。一切顺利。
但我想去掉工程myproject 的链接 "Link With Dynamic RTL", 链接是就发生一堆std里链接错误。
在 embarcadero 论坛里也发现有人提示类似的问题,好像说是XE2 的bug。
这个问题怎么解决, 我根据论坛里的建议,把std里容器类的那些产生链接错误的方法都使用一次。
例如。
using namespace std;
void test()
{
string strtest;
strtest.assign("");
strtest.length();
} //test()在cryptlib_bds.lib 和 myproject 都有, 结果还是一样。还是产生length()函数等链接错误,说找不到。
这个怎么解决
链接错误:
[ILINK32 Error] Error: Unresolved external 'std::char_traits<char>::assign(char *, unsigned
int, char)' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|cryptlib
[ILINK32 Error] Error: Unresolved external 'std::char_traits<char>::length(const char *)' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|cryptlib
[ILINK32 Error] Error: Unresolved external 'std::char_traits<char>::move(char *, const char *, unsigned int)' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|cryptlib
[ILINK32 Error] Error: Unresolved external 'std::char_traits<char>::copy(char *, const char *, unsigned int)' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|cryptlib
[ILINK32 Error] Error: Unresolved external 'std::char_traits<char>::assign(char&, const char&)' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|cryptlib
[ILINK32 Error] Error: Unresolved external 'std::numeric_limits<int>::max()' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|files
[ILINK32 Error] Error: Unresolved external 'std::ios_base::fail() const' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|files
[ILINK32 Error] Error: Unresolved external 'std::ios_base::good() const' referenced from D:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\9.0\LIB\WIN32\RELEASE\CRYPTLIB_BDS.LIB|files
。。。。。。。。。。。。
[解决办法]
既然一时不好解决,那就用install打包