【问题标题】:make command in windows 10 generating the error:在 Windows 10 中生成错误的命令:
【发布时间】:2021-12-04 09:09:56
【问题描述】:

这是代码,我正在尝试在命令提示符下使用 make 命令进行编译。

nvcc := "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin/nvcc"
cudalib := "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/extras/CUPTI/lib64"
cudainclude := "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/include"
tensorflow := C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64

TF_CFLAGS := $$(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_compile_flags()))') 
TF_LFLAGS := $$(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_link_flags()))') 


all: tf_nndistance_so.so
clean:
    rm -rf *.o *.so
.PHONY : all clean

tf_nndistance_so.so: tf_nndistance_g.o tf_nndistance.cpp
    g++ -std=c++11 -shared tf_nndistance.cpp tf_nndistance_g.o -o tf_nndistance_so.so -fPIC $(TF_CFLAGS) $(TF_LFLAGS) -O2

tf_nndistance_g.o: tf_nndistance_g.cu
    $(nvcc) -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

但出现以下错误:

"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin/nvcc" -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11 -c -o tf_nndistance_g.o tf_nndistance_g.cu -I C:/"Program Files (x86)"/"Microsoft Visual Studio"/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC -O2
nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
make: *** [Makefile:19: tf_nndistance_g.o] Error 1

欢迎提出任何建议。

谢谢。

【问题讨论】:

  • 您的路径中有 cl.exe 吗?您是否尝试过使用 Visual Studio 命令提示符?

标签: python c++ tensorflow cuda cudnn


【解决方案1】:

眼前的问题

您需要设置您的 VStudio(您已经安装的2019)路径。
执行此操作的常用方法是调用 vcvarsall.bat"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
有关从命令行构建的更多详细信息:[SO]: How to build a DLL version of libjpeg 9b? (@CristiFati's answer)

更大的问题

您正在混合编译器:

  • CUDA Toolkit 使用(默认)VStudio(本机)编译器(cl.exe
  • 您正在使用 g++.exe

这是一个坏主意,您应该坚持使用一个编译器(cl - 如上一节所述)。请注意,您使用的某些标志不兼容。
或者指示CUDA使用g++(不知道它属于什么构建工具链,不知道是否可以) .

【讨论】:

    【解决方案2】:

    安装 Visual Studio。

    您需要将包含“cl.exe”文件的文件夹添加到您的路径环境变量中。例如:

    C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
    

    转到My Computer -> Properties -> Advanced System Settings -> Environment Variables。这里在列表中查找“PATH”,并添加上面的路径(或任何您的 cl.exe 的位置)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2019-02-22
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      相关资源
      最近更新 更多