创建Gaussian Splatting Anaconda环境时遇编译错误求助
解决Gaussian Splatting安装中diff_gaussian_rasterization/simple_knn的crtdefs.h缺失问题
核心解决方案
1. 使用VS专用命令行执行安装
crtdefs.h属于Windows SDK组件,普通命令行可能未正确加载SDK的环境变量。操作步骤:
- 打开Visual Studio Installer,确认已安装对应版本的Windows SDK(如VS2022搭配Windows 11 SDK 10.0.22621.x)
- 启动x64 Native Tools Command Prompt for VS <你的版本>,在该窗口内依次执行:
git clone github.com/graphdeco-inria/gaussian-splatting --recursive SET DISTUTILS_USE_SDK=1 conda env create --file environment.yml
2. 手动补充Windows SDK头文件路径
若不想使用VS命令行,可手动指定UCRT头文件路径:
- 找到你的Windows SDK UCRT路径,通常为
C:\Program Files (x86)\Windows Kits\10\Include\<SDK版本号>\ucrt(替换<SDK版本号>为实际数值,如10.0.22621.0) - 在命令行中添加环境变量后再执行安装:
SET INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\<你的SDK版本>\ucrt;%INCLUDE% SET DISTUTILS_USE_SDK=1 conda env create --file environment.yml
3. 对齐CUDA与PyTorch编译版本(可选)
虽然版本 mismatch提示大概率不影响,但如果上述方法无效,可尝试完全匹配:
- 卸载CUDA 11.8,安装PyTorch编译依赖的CUDA 11.6
- 重新安装适配CUDA 11.6的PyTorch:
pip3 install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 - 再次执行conda环境创建命令
问题根源说明
crtdefs.h是Windows通用C运行时(UCRT)的核心头文件,nvcc编译CUDA扩展时需要从Windows SDK中读取该文件。此前的操作虽安装了VS C++构建工具,但未通过专用命令行加载完整的编译环境变量,导致SDK路径未被正确识别。
内容的提问来源于stack exchange,提问作者mmmmmmmmm
相关产品推荐
相关产品推荐

