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



尝试将cuda与其他应用程序链接的新手。我正在尝试编译一个Maya插件,并在插件中链接cuda 11。我得到了同样的错误,已经列出了很多次,但修复似乎不再有效。这是一个直接的插件。

我有一个displace.cuh文件,它包含在我的插件的.cu文件和.cpp文件中。

#include “cuda.h”
#include “cuda_runtime.h”
void cu_displace();
int cuda_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 coden”);
}
int cuda_displace() {
dim3 blocks(DIM/16,DIM/16);
dim3 threads(16,16);
//
displace<<<blocks, threads>>>();
return 0;
}

我得到了所有不同类型的错误,这些错误与Cuda中的错误相同。

C:Program FilesAutodeskMaya2021includemaya/MTypes.h(219): note: see declaration of ‘double4’

然而,尝试这个

namespace cuda {
#include “cuda.h”
#include “cuda_runtime.h”
}

给出这些错误。

C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0includecuda_runtime.h(310): error C2039: ‘cudaEventCreateWithFlags’: is no
t a member of ‘global namespace'' C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0includecuda_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})

相关内容

  • 没有找到相关文章

最新更新