【发布时间】:2016-02-06 05:07:30
【问题描述】:
我们发现了一个链接器错误:
2>cryptlib.lib(x64dll.obj) : error LNK2001: unresolved external symbol "unsigned __int64 * CryptoPP::rdtable::Te" (?Te@rdtable@CryptoPP@@3PA_KA)
2>x64\Output\Debug\cryptest.exe : fatal error LNK1120: 1 unresolved externals
缺少的符号位于rijndael.cpp,它在x64dll.asm中的使用如所以:
include ksamd64.inc
EXTERNDEF ?Te@rdtable@CryptoPP@@3PA_KA:FAR
EXTERNDEF ?g_cacheLineSize@CryptoPP@@3IA:FAR
EXTERNDEF ?SHA256_K@CryptoPP@@3QBIB:FAR
...
源文件是用/GL编译的,所以我们不能用dumpbin /symbols在 rijndael.obj 上检查目标文件以查看此配置发生了什么。另请参阅 Dumpbin 的 /SYMBOL 文档和 Why is DumpBin telling me there are no COMDATs in my binaries...?。
Microsoft 的文档告诉我们不能使用什么,但没有告诉我们在这种情况下应该使用什么。
使用/GL编译时,我们如何在目标文件中定位和显示符号?
【问题讨论】:
标签: visual-studio dumpbin