windows sdk 7.1 64位构建的CloseHandle显然不在kernel32.lib中
windows sdk 7.1 64-bit build CloseHandle apparently not in kernel32.lib
我已经安装了SDK 7.1,正在尝试将C/C++项目的端口从MinGW(32位)连接到SDK 7.1附带的64位VC 2010。我在安装SDK时为其设置的命令行环境中进行编译。
我得到了所有要编译的文件,但链接让我失败了,无论是在我设置了一个带有C/C++运行时静态链接的构建时,还是在我设置一个带有C/C++运行时动态链接的备用构建时。
例如,Kernel32.lib是我链接的一部分,我在这里确认了它是从C:\Program Files\Microsoft SDK\Windows\v7.1\lib\x64\Kernel32.lib中检索的,但以下链接错误是两个版本报告的众多错误之一。
错误LNK2019:未解析的外部符号__imp__CloseHandle@4
如何解决这些联系问题?SDK中或随附的VC 2010中没有其他x64 Kernel32.lib。
如果您处于正确的命令行环境中,如果安装了VS 2010,则可以通过在命令提示符下调用%VS100COMNTOOLS%....VCvcvarsall.bat x64
来设置该环境,那么只需使用cl test.cpp
即可编译以下简单程序。kernel32.lib
是自动链接的,因为所有Windows应用程序都需要它:
#include <windows.h>
int main()
{
HANDLE h;
CloseHandle(h);
}
听起来像是在使用32位编译器,并显式指定64位kernel32.lib,我可以重新生成它。注意标题"32位C/C++优化编译器…":
C:>cl test.cpp -link "c:Program Files (x86)Microsoft SDKsWindowsv7.1ALibx64Kernel32.Lib"
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
test.cpp
c:test.cpp(6) : warning C4700: uninitialized local variable 'h' used
Microsoft (R) Incremental Linker Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:test.exe
"c:Program Files (x86)Microsoft SDKsWindowsv7.1ALibx64Kernel32.Lib"
test.obj
test.obj : error LNK2019: unresolved external symbol __imp__CloseHandle@4 referenced in function _main
相关文章:
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- JSON转换为nlohmann JSON-lib中的结构数组
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 为什么我的链接器在找到Coin4d.lib后搜索Coin4sd.lib?
- libcpmtd.lib有什么用?
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 解析引用 |exe/dll vs lib
- 在 /usr/local/lib 下找不到库
- 当 Windows SDK 版本设置为 15063.13 时"LNK1104 Cannot open file 'kernel32.lib' "
- C |LNK1104-无法打开文件kernel32.lib
- Visual Studio 2012 alongside 2010 - kernel32.lib, windows.h
- Visual Studio 错误:LNK1104:无法打开文件'kernel32.lib' - 仅在 WP8 项目/Win32 版本中
- windows sdk 7.1 64位构建的CloseHandle显然不在kernel32.lib中
- CreateProcess Exception (kernel32.lib)
- 错误 LNK1104 无法打开文件'kernel32.lib'
- 错误 LNK1181:无法打开输入文件'kernel32.lib'
- LNK1104:链接 openCV 时无法打开文件 'kernel32.lib'
- kernel32.lib意外删除- VS 2012修复