我正在使用 CUDA 9.2 通过 OpenGL 模拟光线追踪。
我刚刚发现由于我的 CUDA 版本不支持 x86 构建,所以我应该使用 x64 库。
但是还有问题。
所有需要 opengl32.lib 的 glut 函数都会导致 “无法解析的外部符号错误”。
我以为链接器链接了 x86 文件夹中的 opengl32.lib 文件,但是
C:\Program Files (x86)\Windows Kits\Lib .0.17134.0\um\x64\OPENGL32.lib:警告 LNK4272:库计算机类型“x86”与目标计算机类型“X64”冲突
如你所见,我的 opengl32.lib 肯定在 x64 文件夹中。
如何解决这个问题? 如何将 openGL 与 CUDA 结合使用?
也许您的 CUDA 项目中可能有目标机器平台设置。
尝试查看项目设置 -> CUDA -> 通用目标机器平台并将其更改为 32 位。
但是CUDA 9.0版本之后86平台支持不多了 详情.
解决方案是使用旧的 CUDA 或您的项目所依赖的新库。
我使用的是 Visual Studio 2022。
您可以从设置中执行此操作:构建 > 配置管理器 > Active Solution Platform > 从 x64 更改为 x86
或者您可以简单地从此处从外部执行此操作:只需打开列表并从 x64 更改为 x86。