我正在尝试使用链接到 CUDA 项目的 Visual Studio C++ 来实现 Windows 窗体应用程序。
我创建了 WFA。
然后我尝试通过浏览项目属性的添加引用部分中的 .dll 将应用程序动态链接到 CUDA 项目。但它说“无法添加......它不是 .NET 程序集或注册的 ActiveX 控件”。
因此,我将 CUDA 项目的 .obj 添加到 Linker->Input->Additional Dependencies 部分,其中包含在 WFA 项目中运行 CUDA 所需的 .lib 文件。然后我收到“致命错误 LNK1313:检测到纯模块;无法与 ijw/native 模块链接”错误。
我将公共语言运行时支持从“纯 MSIL 公共语言...”更改为“公共语言...”,但随后 msvcrtd.lib 和 libcmt.lib 发生冲突。当从“附加依赖项”中删除 CUDA 项目的 .obj 文件时,此错误消失。
由于CUDA项目的runtime是MT,WFA项目是MT dll,所以会出现这个错误。我将 WFA 的运行时更改为 MT,但随后出现“错误 D8016:'/MTd' 和 '/clr' 命令行选项不兼容”错误。
由于识别“System::”需要/clr,因此我无法摆脱/clr 选项。
您对使用 Windows c++ 创建一个以最简单的方式链接到 cuda 项目的 Windows 窗体应用程序有什么建议吗?或者,如果有更简单的方法,我会很高兴听到它们。