库机器类型“x86”与目标机器类型“X64”冲突

问题描述 投票:0回答:2

我正在使用 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 结合使用?

c++ opengl visual-studio-2017
2个回答
0
投票

也许您的 CUDA 项目中可能有目标机器平台设置。

尝试查看项目设置 -> CUDA -> 通用目标机器平台并将其更改为 32 位。

enter image description here

但是CUDA 9.0版本之后86平台支持不多了 详情.

解决方案是使用旧的 CUDA 或您的项目所依赖的新库。


0
投票

将活动解决方案平台从 x64 更改为 x86

我使用的是 Visual Studio 2022。

您可以从设置中执行此操作:构建 > 配置管理器 > Active Solution Platform > 从 x64 更改为 x86

或者您可以简单地从此处从外部执行此操作:只需打开列表并从 x64 更改为 x86。

© www.soinside.com 2019 - 2024. All rights reserved.