gpt4 book ai didi

windows - 在没有 .NET Framework 4.0 的情况下使用 Windows SDK 7.1 编译 C++ 代码

转载 作者:可可西里 更新时间:2023-11-01 11:57:52 26 4
gpt4 key购买 nike

我想使用适用于 x86_32 的 Windows SDK 7.1 编译 C++ 项目。我正在使用带有最新更新的干净的 Windows XP SP3 x86_32。项目(名称无关紧要)是一个跨平台项目,使用 Makefile(无 vcxproj/msbuild)构建并且仅包含非托管 C++ 代码(无 C# 或其他托管代码)。

我已经安装了 Windows SDK 7.1(它需要 .NET Framework 2.0 来运行安装程序和 .NET Framework 4.0 来安装 C++ 编译器),使用 SDK 中的 SetEnv.cmd 脚本设置编译环境并成功构建项目。

现在我需要使用相同的 Windows SDK 在不同的 Windows 版本(2003、Vista、7、2008)上测试构建。我不想每次需要在干净的操作系统上测试构建时都从 ISO 安装 Windows SDK - 这会花费很多时间。相反,我想要一个带有 C++ 编译器的文件夹,我可以将其复制到干净的 Windows 实例,复制它旁边的代码源并运行批处理脚本以开始构建。

所以我将所有 Windows SDK 文件复制到另一个文件夹,卸载了 Windows SDK、C++ 编译器和 .NET Framework 2.0。比将 Windows SDK 文件复制回原始文件夹(我可以将它们移动到任何地方,相应地更改 SetEnv.cmd 脚本)。之后构建工作正常。

但是当我卸载 .NET Framework 4.0 时,link.exe 调用构建失败:

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

我认为 link.exe 使用了 .NET Framework 4.0 安装中的一些库或工具,所以我在卸载前复制了 C:\WINDOWS\Microsoft.NET 文件夹然后将其复制回原始位置。这没有帮助。

我用谷歌搜索了 LNK1123,只有以下建议:“安装 VS2010SP1”(我根本不使用)和“重新安装 .NET Framework 4.0”(有效,但这正是问题所在)我正在努力避免)。

不能选择不同的编译器:在 Windows 上,此项目仅支持 VS2010 的编译器(包含在 Windows SDK 7.1 中)。

我很困惑 - Windows SDK 7.1 中用于 x86_32 的 link.exe 是否真的需要 .NET Framework 4.0 运行时(不是一些库或 native 工具)构建完全 native 和非托管 C++ 代码(不会以任何方式与 CLR 一起使用)?

最佳答案

已解决,不需要非托管 dll 的 link.exe .NET Framework 4.0 运行时。要在干净的 Windows XP SP3(那里从未安装过 SDK 和框架)上运行 Windows SDK 7.1 工具链的副本,必须将这些库添加到 %PATH%:

msvcp100.dll
msvcr100.dll
msvcr100_clr0400.dll

关于windows - 在没有 .NET Framework 4.0 的情况下使用 Windows SDK 7.1 编译 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13571628/

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