C++ MapViewOffilex的MSVS链接错误

C++ MapViewOffilex的MSVS链接错误,c++,user32,C++,User32,我在MSVS本机控制台中执行了以下命令 cl -Feedgcpfex64.exe -D _WIN64 ../src/*.c user32.lib 并获得以下链接器错误 LNK2019: unresolved external symbol __imp__MapViewOfFileEx@28 referenced in function _map_file_region 查看MSDN文档中的函数- 库-Kernel32.lib DLL-Kernel32.DLL 您需要将kernel32.lib

我在MSVS本机控制台中执行了以下命令

cl -Feedgcpfex64.exe -D _WIN64 ../src/*.c user32.lib
并获得以下链接器错误

LNK2019: unresolved external symbol __imp__MapViewOfFileEx@28 referenced in function _map_file_region

查看MSDN文档中的函数-

库-Kernel32.lib

DLL-Kernel32.DLL


您需要将kernel32.lib添加到编译器参数列表中,它会将其转发到链接器。

这可能是您正在使用
32位本机工具的情况。由于
user32.lib
kernel32.lib
对于
64位环境
是不同的,但是名称相同。

它在kernel32.lib中。选中always MSDNwe不需要显式链接到kernel32.lib,因为默认情况下cl.exe命令已经完成了链接器进行链接,而不是cl。默认库不一定总是链接到kernel32.lib。cl.exe可以构建内核驱动程序,而且它们肯定没有kernel32.lib。如果这不起作用,那么我唯一的猜测是,您的目标是32位,但定义了WIN64,并导致您的所有函数原型都是错误的。你能粘贴完整的编译器命令行吗?这是我在上面问题中使用的唯一命令。如果您向链接器传递lib文件,cl可以自己调用链接器。是的,使用64位环境命令提示符解决了我的问题。谢谢@shagun