【问题标题】:LNK2005 with __declspec(dllexport)LNK2005 与 __declspec(dllexport)
【发布时间】:2023-01-26 00:44:19
【问题描述】:

我正在编写一个简单的 OpenGL 3D 应用程序。如果我在笔记本电脑上运行该应用程序,性能会很糟糕,因为始终选择内部 Intel GPU,而不是功能更强大的专用 AMD GPU。

我读到我必须包含这一行以强制应用程序在专用 GPU 上运行:

extern "C" __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001;

但是,我收到一个 LNK2005 错误,指出 AmdPowerXpressRequestHighPerformanceis already defined in multiple .obj files。我不知道如何解决这个问题,并且在我包含在我的应用程序中的任何文件中都没有找到这个变量名。

如果有帮助:我正在使用 GLFW3 和 GLAD 进行 OpenGL 渲染。

【问题讨论】:

  • 你到底把这条线放在哪里?不要把它放在头文件中。
  • “我没有找到这个变量名......”:虽然编译器找到了它:你所拥有的是链接时错误。
  • 解决了!谢谢“tkausl”。我确实把它放在了头文件中,这就是问题所在。

标签: opengl gpu lnk2005


【解决方案1】:

确保您没有使用定义的 GLFW_USE_HYBRID_HPG 构建 GLFW,这会导致 GLFW 导出 NvOptimusEnablementAmdPowerXpressRequestHighPerformance 本身。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-05
    • 2015-02-24
    • 2016-03-25
    • 2011-11-23
    • 2012-04-14
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多