Вот что у меня есть:
- Я следую коду из этого репозитория, чтобы узнать о нем. Мы с OptiX работаем над примером 2 (где вы получаете контекст CUDA).
- В моем коде (main.cpp) Я включил cuda_runtime.h, device_launch_parameters.h, optix.h и optix_stubs.h, но по-прежнему получаю сообщение об ошибке время компиляции.
- Интересно, что моя IDE, CLion от JetBrains, не отображает никаких неопределенных ссылочных ошибок/предупреждений в строке. Ошибки появляются только при компиляции.
- В моем CMakeLists.txt я использовал find_package(CUDAToolkit REQUIRED) для получения CUDA. Затем я использовал target_link_libraries{ ... CUDA::cudart для связывания в CUDA.
Заранее благодарим за помощь!
Обновить #2: Решено
В такие моменты меня рвать на себе волосы: все, что мне нужно было сделать, это буквально вставить cuda в мои целевые библиотеки ссылок. Не -lcuda или CUDA::cuda, просто cuda. Каким-то образом это связано с драйверами, и, похоже, сейчас оно компилируется.
[СТАРОЕ, НО СОХРАНЕНО ДЛЯ СПРАВКИ] Обновление № 1: вот мой CMakeLists.txt .
Извините за отсутствие кода в исходном сообщении. Я пытался избежать вставки больших кусков произвольного кода.
cmake_minimum_required(VERSION 3.17)
project(My_Project_Name CUDA CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/cmake"
${CMAKE_MODULE_PATH})
find_package(CUDAToolkit REQUIRED)
find_package(OptiX REQUIRED VERSION 7.0)
add_executable(
${PROJECT_NAME}
main.cpp [and other cpp and cu files])
# For project
set_target_properties(
${PROJECT_NAME}
PROPERTIES
CUDA_SEPARABLE_COMPILATION ON
)
target_compile_options(
${PROJECT_NAME}
PRIVATE
$
)
target_include_directories(
${PROJECT_NAME}
PRIVATE
include
${OptiX_INCLUDE}
)
target_link_libraries(
${PROJECT_NAME}
PRIVATE
CUDA::cudart
CUDA::cublas
)
Подробнее здесь: https://stackoverflow.com/questions/662 ... -for-optix
Мобильная версия