MSVC文件夹结构疑问:Hostx86目录下x64文件夹的作用是什么
MSVC 目录结构设计逻辑与子目录作用说明
目录结构设计原因
MSVC 采用分层架构的目录结构核心是为了适配复杂的编译场景,避免不同工具链版本、架构的冲突:
- 支持交叉编译需求:区分宿主架构(编译器本身运行的系统架构)和目标架构(编译生成的程序运行的架构),一套工具安装包就可以覆盖从x86、x64到ARM系列的所有交叉编译场景,不需要单独下载不同的工具包。
- 支持多版本并行:不同版本的MSVC工具集可以独立存放在对应目录下,不同项目可以自由指定使用的工具链版本,不会出现版本覆盖导致的编译异常。
- 降低构建工具配置成本:MSBuild、CMake等构建工具可以按照固定的目录规则,自动匹配当前宿主环境和指定目标架构对应的工具链,不需要开发者手动配置工具路径。
Hostx86 下 x64 文件夹的作用
所有带Host前缀的一级目录,标识的是目录下工具本身的运行架构,二级目录标识的是工具输出的二进制文件的目标架构。Hostx86/x64目录下存放的是运行在32位x86宿主环境下、可以生成64位x64架构目标程序的编译工具链,适合在32位操作系统,或者需要在32位进程上下文里编译64位程序的场景使用。
常见的同类型目录组合还有:
Hostx64/x86:运行在64位x64宿主环境,生成32位x86程序的工具链Hostx64/x64:运行在64位x64宿主环境,生成64位x64程序的工具链,是目前主流开发场景的默认选择Hostx64/ARM64:运行在64位x64宿主环境,生成ARM64架构程序的交叉编译工具链
内容的提问来源于stack exchange,提问作者Patryk
相关产品推荐
相关产品推荐

