【发布时间】:2011-03-10 06:23:41
【问题描述】:
所以我正在尝试将旧版应用程序从 32 位编译到 64 位.. 我重新编译了它使用的所有库,并使其查看了用于库的 WIN SDK6.0A x64 位..
我正在使用:
- Visual Studio 专业版 2008
- Visual C++
- dotNet 框架 3.5 SP1
- Windows Server 2008R2
- Windows SDK 为 6.0A
一切终于来了,但我收到了这些奇怪的未定义符号错误:
error LNK2019: unresolved external symbol InterlockedDecrement referenced in function ...
error LNK2019: unresolved external symbol InterlockedIncrement referenced in function ...
error LNK2019: unresolved external symbol GetModuleBaseName referenced in ...
error LNK2019: unresolved external symbol EnumProcessModules referenced in ...
error LNK2019: unresolved external symbol EnumProcesses referenced in ...
error LNK2019: unresolved external symbol GetProcessMemoryInfo referenced
问题是这些都是来自 SDK 的胜利内容。 InterlockedDec 和 InterlockedInc 来自 kernel32.lib GetModuleBaseName、EnumProcessModules、EnumProcesses、GetProcessMemoryInfo 在 psapi.h 中,但也在 kernel32.lib 或 psapi.lib 中
我检查了 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64 和两个库 kernel32.lib 和 psapi.lib 都在那里。
它肯定会在正确的位置查找库。我打开了 /VERBOSE:LIB 它指向正确的文件夹。
所以我真的很困惑为什么没有找到它们。
有什么想法吗???
谢谢
【问题讨论】:
标签: c++ visual-studio-2008 winapi win64 kernel32