MSVC编译,Qt使用CMake实现cuda编程

这里需要配置了MSVC2017的编译环境在qt界面,工具->选择->Kits->配置MSVC2017(其实就是自己安装的版本),配置MSVC需要安装最新版的Windows kit(直接官方下载就行),然后把环境变量加上如下
MSVC配置(编译器、Debug),然后在构建套件(Kit)这里
 

#例如需要添加的路径
D:\Window Kits\10\Windows Performance Toolkit

安装完成后首先在Qt界面,工具->选择->Kits->编译器,在Manual中选择C++添加,一般可以自动找到D:\software\MicrosoftVisualStudio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat这个脚本
配置就看自己的选择,只用去调整是64还是32,其他默认就行。


如果编译器也配置了,compiler选项中C++里面的对应的MSVC就如上图中的这个resoft Visual C++ Compiler这个名字,选择的时候找到自己编译器添加的名字
上面添加完成后,就可以然后的Qt界面,工具->选择->Kits->Debuggers会自动出现所需的debug配置,这个东西主要是工具->选择->Kits->构建套件(Kit)中的MSVC2017 64bit需要的

主要配置我给出的这两点,然后图标提示不是叹号就可以用了

这里只简单介绍,其实还是主要在CMakeLists.txt文件中的内容,下方直接给出,CUDA一般安装的时候就会让你配置环境变量,如果没有选择也可以自己配下面的文件注释也有说到

cmake_minimum_required(VERSION 3.8)

# 添加项目支持语言CXX CUDA
project(cudaTest LANGUAGES CXX CUDA)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

# 执行c++版本
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 指定CUDA版本,寻找CUDA开发包
# 需要配置环境变量
# CUDA安装目录下,找CUDA\v12.4.1\bin
# 还有一个是,CUDA安装目录下,找CUDA\12.4.1\libnvvp
# 都添加到系统环境变量中
find_package(CUDA 12.4.1 REQUIRED)

find_package(Qt5 COMPONENTS Widgets REQUIRED)

# 强制指定使用MSVC工具链
set(CMAKE_GENERATOR_PLATFORM x64)

if(ANDROID)
  add_library(cmakeTest SHARED
    main.cpp
    widget.cpp
    widget.h
    widget.ui
  )
else()
  add_executable(cmakeTest
    main.cpp
    widget.cpp
    widget.h
    widget.ui
  )
endif()

target_link_libraries(cmakeTest PRIVATE Qt5::Widgets)

# CUDA编译适配(MSVC)
set_target_properties(cmakeTest PROPERTIES
    CUDA_SEPARABLE_COMPILATION ON
)

写的有点乱,还请见谅,qt和msvc想编译cuda的话,最主要就是注意三点
1、cmake设置的版本

cmake_minimum_required(VERSION 3.8)
2、C++的版本
set(CMAKE_CXX_STANDARD 14)

set(CMAKE_CXX_STANDARD_REQUIRED ON)
3、cuda的版本

find_package(CUDA 12.4.1 REQUIRED)


然后启动cuda适配msvc
set_target_properties(cmakeTest PROPERTIRE
        CUDA_SEPARABLE_COMPILATION ON
)
注意说都的1、2、3,这三个版本需要高度支持,就是把三个版本都调整对了就可以编译,如果其中某一个版本对不上,原先的代码就无法运行,如果是个新建项目就可以自己先试一下版本,注意是CMake、C++、CUDA这个三个版本需要对上(可以多试试)。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值