You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10运行make编译CUDA TensorFlow项目提示找不到cl.exe问题问询

报错核心原因

nvcc编译CUDA代码时需要调用MSVC的cl.exe作为宿主编译器,当前cl.exe所在路径未被纳入终端的PATH环境变量,导致nvcc无法定位到编译器。

可行解决方法

按优先级从高到低排列:

  • 方法1:使用VS自带的开发者终端编译
    打开开始菜单,搜索并启动x64 Native Tools Command Prompt for VS 2019,该终端会自动配置好所有MSVC相关的环境变量(包含cl.exe的路径),进入项目目录后直接执行make命令即可,无需修改任何配置,是兼容性最好的方案。
  • 方法2:手动添加cl.exe路径到系统环境变量
    1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在系统变量列表中找到Path,点击编辑,新增以下路径:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
    3. 保存所有配置后重启命令提示符,重新执行make命令即可。
  • 方法3:修改Makefile明确指定编译器路径
    在nvcc的编译参数中添加-ccbin参数指定cl.exe所在目录,修改后的编译规则如下:
    tf_nndistance_g.o: tf_nndistance_g.cu
        $(nvcc) -ccbin "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64" -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11 -c -o tf_nndistance_g.o tf_nndistance_g.cu -I $(tensorflow) -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC -O2
    
额外注意事项

你当前Makefile中tensorflow变量配置的是cl.exe的二进制目录,但是传给nvcc的是-I(头文件搜索路径)参数,若后续编译出现MSVC头文件找不到的报错,可将tensorflow变量修改为MSVC的头文件路径:
C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/include

内容的提问来源于stack exchange,提问作者AMRUTA KABADE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:45:05