Visual Studio v120/v120_xp平台工具集触发C1083错误的解决方法
问题
先安装Visual Studio 2019,后安装Visual Studio 2013,需使用v120_xp平台工具集构建旧项目,但即使是简单的Hello World项目也触发fatal error C1083: Cannot open source file错误。
测试代码
// ConsoleApplicationCppHelloWorld.cpp #include <iostream> int main() { std::cout << "Hello World!\n"; }
项目文件(ConsoleApplicationCppHelloWorld.vcxproj)
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> <ProjectConfiguration Include="Debug|Win32"> <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{98307489-72A4-43E6-8D4D-EEB5FA0E7474}</ProjectGuid> <RootNamespace>ConsoleApplicationCppHelloWorld</RootNamespace> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v120_xp</PlatformToolset> <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v120</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup /> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck> </ClCompile> <Link> <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> <SDLCheck>true</SDLCheck> </ClCompile> <Link> <GenerateDebugInformation>true</GenerateDebugInformation> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> </Link> </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="ConsoleApplicationCppHelloWorld.cpp" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project>
报错信息
1>ConsoleApplicationCppHelloWorld.cpp 1>c1xx : fatal error C1083: Cannot open source file: 'ConsoleApplicationCppHelloWorld.cpp': No such file or directory
注意:使用
v140、v140_xp、v141、v141_xp及v142等较新平台工具集构建均成功,仅v120和v120_xp返回C1083错误。
解决方案
1. 修复VS2013的组件安装
- 打开Visual Studio Installer,找到VS2013,选择「修改」。
- 确保勾选
Visual C++下的所有核心组件,尤其是Windows XP支持工具集和MSBuild工具。 - 完成修复后重启VS,重新构建项目。
2. 手动指定项目的VCTargets路径
在项目文件的<PropertyGroup Label="Globals">节点中添加VS2013的工具集路径(根据实际安装路径调整):
<PropertyGroup Label="Globals"> <ProjectGuid>{98307489-72A4-43E6-8D4D-EEB5FA0E7474}</ProjectGuid> <RootNamespace>ConsoleApplicationCppHelloWorld</RootNamespace> <!-- VS2013默认VCTargets路径 --> <VCTargetsPath>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120</VCTargetsPath> </PropertyGroup>
3. 使用VS2013的命令提示符构建
- 找到「VS2013 x86 Native Tools Command Prompt」(对应目标平台的命令提示符),打开后导航到项目目录。
- 执行构建命令:
msbuild ConsoleApplicationCppHelloWorld.vcxproj /p:Configuration=Debug /p:Platform=Win32
此方式会强制使用VS2013的工具链,避免VS2019的MSBuild干扰。
4. 验证文件路径一致性
- 确保
ConsoleApplicationCppHelloWorld.cpp与.vcxproj文件在同一目录下,若不在,修改<ClCompile>节点为绝对路径:
<ItemGroup> <ClCompile Include="C:\你的项目实际路径\ConsoleApplicationCppHelloWorld.cpp" /> </ItemGroup>
5. 清理项目缓存
- 删除项目目录下的
Debug、Release文件夹,以及隐藏的.vs文件夹。 - 重启VS后重新生成项目。
内容的提问来源于stack exchange,提问作者William Shen
相关产品推荐
相关产品推荐

