Как скомпилировать файлы C++ и CUDA вместе с помощью cmake на платформе WindowsC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Как скомпилировать файлы C++ и CUDA вместе с помощью cmake на платформе Windows

Сообщение Гость »


Я хочу скомпилировать файл .cpp и файл .cu вместе с помощью cmake на платформе Windows. Я использую CMakelists, чтобы установить правило компиляции:
CMakeLists:

Код: Выделить всё

cmake_minimum_required(VERSION 3.23)

set(CUDA_TOOLKIT_ROOT_DIR "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.3")
set(CMAKE_CUDA_COMPILER "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\bin\\nvcc.exe")
set(CMAKE_CXX_COMPILER "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.38.33130\\bin\\Hostx64\\x64\\cl.exe")

project(OCT_CUDA LANGUAGES CXX CUDA C)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CUDA_STANDARD 17)

if(MSVC)
set(_CRT_SECURE_NO_WARNINGS 1)
set(CURL_STATICLIB 1)
set(CMAKE_CUDA_COMPILER "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.3\\bin\\nvcc.exe")
set(CMAKE_CXX_COMPILER "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.38.33130\\bin\\Hostx64\\x64\\cl.exe")
set (CUDA_INCLUDE_DIRS "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.3\\include")
# set (CUDA_LIBRARIES "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.3\\lib\\x64")
endif()

file(GLOB CU_FILES src/*.cu)
file(GLOB CPP_FILES "*.cpp")
file(GLOB CUH_FILES "*.cuh")

enable_language(CUDA)
find_package(CUDAToolkit REQUIRED)
include_directories("C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.3\\include")

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

link_directories("C:\\Program Files\\NVIDIA \\GPU Computing Toolkit\\CUDA\\v12.3\\lib\\x64")
link_directories("C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.3\\nvvm\\lib\\x64")

add_library(cuda_lib STATIC src/test.cu)
set_target_properties(cuda_lib PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
set_target_properties(cuda_lib PROPERTIES CUDA_ARCHITECTURES 86)
add_executable(${CMAKE_PROJECT_NAME}  ${CPP_FILES})

target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE cuda_lib CUDA::cudart ${CUDA_LIBRARIES} )

target_compile_options(${CMAKE_PROJECT_NAME}
PRIVATE $
PRIVATE $
)

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(add PRIVATE $

Источник: [url]https://stackoverflow.com/questions/78144920/how-to-compile-c-and-cuda-files-together-using-cmake-in-windows-platform[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»