gpt4 book ai didi

c++ - Visual Studio 2012 为 XP 编译 - 无效的 win32 - v110_xp

转载 作者:太空狗 更新时间:2023-10-29 21:00:12 28 4
gpt4 key购买 nike

我有 Visual Studio 2012 update 4 和 Windows SDK 7.1。

我选择“Visual Studio 2012 - Windows XP (v110_xp)”工具包并将包含目录更改为使用 $(WindowsSdkDir_71A)。

编译期间没有出现错误(例如它成功找到了 winres.h),但是当我尝试在 Windows XP SP3 上运行该 exe 时,它​​仍然出错:“test.exe 不是有效的 Win32 应用程序。”

对于测试,它只是一个 C++ hello world。

#include <cstdio>

int main(void)
{
printf("Hello, World!\r\n");
return 0;
}

如何使用 Visual Studio 2012 为 XP 编译?

我应该检查什么才能让它正常工作?

如何在命令行上测试编译?我目前正在用这个在命令行上进行测试,它仍然会给出无效的 win32 错误:

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe" /EHsc /MT /I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include" /I"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include" main.cpp /link /LIBPATH:"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib" 

更新:如果我在命令行中使用这些说明,它会起作用: http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx

如果我将这些设置放入我的系统环境变量中,我也可以让 msbuild 和 visual studio 编译成功,但这并不理想。

最佳答案

需要更改的设置是项目属性 -> 配置属性 -> 链接器 -> 系统 -> 子系统

这需要为适当的项目类型设置为 CONSOLE 或 WINDOWS,但默认情况下不会为“空项目”设置,即使在其他地方设置了控制台与 GUI 并且它似乎可以工作(例如 WinMain 是条目点,控制台不出现等)。最低要求版本也需要是 5.01,但根据 link.exe 上的命令行帮助判断,我认为除非设置子系统,否则这不会做任何事情。

要检查的事情:

  • Visual Studio 2012 是 Update 1 或更高版本
  • SDK 7.1 已安装且存在 7.1A
  • 使用“Visual Studio 2012 - Windows XP (v110_xp)”工具包
  • 预处理器定义包含 _USING_V110_SDK71_
  • VC++ 目录包含 $(WindowsSdkDir_71A)bin、$(WindowsSdkDir_71A)include 和 $(WindowsSdkDir_71A)lib
  • 链接器子系统是控制台或窗口,最低要求版本为 5.01

关于c++ - Visual Studio 2012 为 XP 编译 - 无效的 win32 - v110_xp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22667798/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com