在Windows上用qt写界面,需要用到cuda,windows上qt配置cuda花了很长时间,现在分享出来
windows上Qt Creator配置cuda与linux上大同小异
QT +=core TEMPLATE = app CONFIG += c++11 CONFIG -= app_bundle TARGET = simulation SOURCES += main.cpp HEADERS += algorithm.h
INCLUDEPATH +=D:\NVIDIA\testCuda\CUDA\v7.0\include \ D:\NVIDIA\testCuda\CUDA\v7.0\common\inc #Qt Creator配置路径不能包含空格,因此我把安装好的cuda新建了个文件夹
LIBS +=-LD:/NVIDIA/testCuda/CUDA/v7.0/lib/x64 \ -lcublas -lcublas_device -lcuda -lcudadevrt \ -lcudart -lopengl32 -lcudart_static -lcufft \ -lcufftw -lcurand -lcusolver -lcusparse
OTHER_FILES +=./algorithm.cu #要运行的程序
# Cuda sources
CUDA_SOURCES+=./algorithm.cu CUDA_SDK ="D:/NVIDIA/testCuda/CUDA/v7.0" CUDA_DIR ="D:/NVIDIA/testCuda/CUDA/v7.0" QMAKE_LIBDIR += $$CUDA_DIR/lib/x64 SYSTEM_TYPE = 64
#不同的显卡注意填适当的选项 CUDA_ARCH = sm_20 NVCCFLAGS = --use_fast_math CUDA_INC = $$join("D:/NVIDIA/testCuda/CUDA/v7.0/include",'" -I"','-I"','"') # MSVCRT link option (static or dynamic, it must be the same with your Qt SDK link option) MSVCRT_LINK_FLAG_DEBUG = "/MDd" #表示使用DLL的调试版 MSVCRT_LINK_FLAG_RELEASE = "/MD" #使用DLL版的C和C++运行库 具体可以看vs的属性设置 CUDA_OBJECTS_DIR = ./
# 配置编译器 CONFIG(debug, debug|release) { # Debug mode cuda_d.input = CUDA_SOURCES cuda_d.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}algorithm.obj #windows的中间文件是obj格式 cuda_d.commands = $$CUDA_DIR/bin/nvcc.exe -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \ -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -Xcompiler $$MSVCRT_LINK_FLAG_DEBUG cuda_d.dependency_type = TYPE_C QMAKE_EXTRA_COMPILERS += cuda_d } else { # Release mode cuda.input = CUDA_SOURCES cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}algorithm.obj cuda.commands = $$CUDA_DIR/bin/nvcc.exe $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \ -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -Xcompiler $$MSVCRT_LINK_FLAG_RELEASE cuda.dependency_type = TYPE_C QMAKE_EXTRA_COMPILERS += cuda }