這是代碼,我試圖在命令提示符下使用 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
歡迎任何建議。
謝謝你。
uj5u.com熱心網友回復:
眼前的問題
您需要設定您的VStudio(您已經安裝的2019)路徑。
一種常見的方法是呼叫vcvarsall.bat : "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64。
有關從命令列構建的更多詳細資訊:[SO]:如何構建 libjpeg 9b 的 DLL 版本?(@CristiFati 的回答)。
更大的問題
您正在混合編譯器:
- CUDA Toolkit使用(默認情況下)VStudio(本機)編譯器(cl.exe)
- 您正在使用g .exe
這是一個壞主意,您應該堅持使用一個編譯器(cl - 如上一節所述)。請注意,您使用的某些標志不兼容。
或者指示CUDA使用g (不知道它屬于什么構建工具鏈,也不知道是否可以)。
uj5u.com熱心網友回復:
安裝 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 的位置)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/324606.html
