gpt4 book ai didi

c++ - Maya 和 Cuda 11 类型重新声明错误

转载 作者:行者123 更新时间:2023-12-04 17:01:16 25 4
gpt4 key购买 nike

在这里尝试将 cuda 与其他应用程序链接起来是个新手。我正在尝试编译一个 Maya 插件并在插件中链接 cuda 11。我收到了多次列出的相同错误,但修复程序似乎不再起作用。这是一个直接的插件。
我有一个 displace.cuh 文件,它包含在我的插件的 .cu 文件和 .cpp 文件中。

#include “cuda.h”
#include “cuda_runtime.h”
void cu_displace();
int cuda_displace();
和一个 displace.cu
#include <stdio.h>
#include “dlCudaDisplace.h”
__global __ void displace() {
int x = threadIdx.x + blockIdx.x * blockDim.x;
int offset = x * blockDim.x * gridDim.x;
printf(“running cuda code\n”);
}
int cuda_displace() {
dim3 blocks(DIM/16,DIM/16);
dim3 threads(16,16);
//
displace<<<blocks, threads>>>();
return 0;
}
对于与 Cuda 中相同的所有各种类型,我都会收到这些错误。
C:\Program Files\Autodesk\Maya2021\include\maya/MTypes.h(219): note: see declaration of ‘double4’
然而,尝试这个
namespace cuda {
#include “cuda.h”
#include “cuda_runtime.h”
}
给出这些错误。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include\cuda_runtime.h(310): error C2039: ‘cudaEventCreateWithFlags’: is no
t a member of ‘global namespace'' C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include\cuda_runtime.h(376): error C2039: 'cudaHostAlloc': is not a member of 'global namespace’’
我正在使用 CMake 构建插件,使用这些 cuda 变量
find_package(Maya REQUIRED)
find_package(CUDA REQUIRED)
enable_language(CUDA)
set(CMAKE_CUDA_FLAGS "{CMAKE_CUDA_FLAGS} -gencode arch=compute_50,code=sm_50 -lcuda -lcudart") include_directories({MAYA_INCLUDE_DIR})
link_directories({MAYA_LIBRARY_DIR}) add_library({PROJECT_NAME} SHARED {SOURCE_FILES}) target_link_libraries({PROJECT_NAME} ${MAYA_LIBRARIES})
任何帮助,将不胜感激。

最佳答案

我现在可以开始工作了。我删除了

#include "cuda.h"
#include "cuda_runtime.h"
来自 .cuh 文件。并将其添加到 cmake 文件中
find_package(Maya REQUIRED)
find_package(CUDA REQUIRED)

enable_language(CUDA)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode arch=compute_50,code=sm_50 -lcuda -lcudart")

include_directories(${MAYA_INCLUDE_DIR} ${CUDA_INCLUDE_DIRS})
link_directories(${MAYA_LIBRARY_DIR} ${CUDA_LIBS})
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${MAYA_LIBRARIES} ${CUDA_LIBRARIES})

关于c++ - Maya 和 Cuda 11 类型重新声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64083638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com