我们一直在 linux 中开发我们的代码,但想编译一个 windows 可执行文件。旧的非 gpu 版本在 windows 中用 mingw 编译得很好,所以我希望我能用 CUDA 版本做同样的事情。
策略是在visual studio中用nvcc编译内核代码,在mingw中用gcc编译其余代码。
到目前为止,我们在 Visual Studio 中轻松编译了 .cu 文件(带有内核和内核启动)。但是,我们仍然无法在mingw中编译c代码。c代码包含cuda api调用如cudaMalloc
和cuda类型如cudaEvent_t
,所以我们必须包括cuda.h和cuda_runtime.h。但是,gcc 会为这些标头提供警告和错误,例如:
../include/host_defines.h:57:0: warning: "__cdecl" redefined
和
../include/vector_functions.h:127:14: error: 'short_4' has no member named 'x'
关于我们如何包含这些头文件并编译代码的 c 部分的任何想法?