所以我正在尝试将遗留应用程序从 32 位编译为 64 位..
我重新编译了它使用的所有库,并使其查找 WIN SDK6.0A x64 位的库。
我在用:
- Visual Studio 专业版 2008
- 视觉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 的 win 东西。
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
它指向正确的文件夹。
所以我真的很困惑为什么它找不到它们。
有任何想法吗???
Thanks
所以我终于明白了,有点...
没有找到 psapi.lib
在项目->链接器->附加依赖项中,而不只是说 psapi.lib
我给了它完整的路径并且它有效......
不太清楚为什么之前找不到它,但是哦好吧......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)