【问题标题】:Linking GLEW fail链接 GLEW 失败
【发布时间】:2015-11-26 18:03:34
【问题描述】:

我正在尝试将 GLEW 链接到我的项目。我正在使用 CodeBlocks,链接器和编译器路径已正确设置。在我的库中,有两个文件(glew32.lib 和 glew32s.lib)。当我尝试链接-lglew32s 时,我的链接器抱怨:

ld.exe||cannot find -lglew32s|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

这里可能有什么问题?当我将-lglew32s 更改为-lglew32 时,我遇到了与动态链接相关的其他类型的错误(未定义的引用),所以我知道我的路径设置正确。

【问题讨论】:

    标签: c++ static-linking glew


    【解决方案1】:

    您可能应该从源代码构建 GLEW 以获取 lib<name>.a 导入库。我的建议是从here 获取源代码并使用MSYS2 构建它。如果您需要更具体的说明,或许可以在 Google 上找到一些教程。

    但是,sschuberth 在 cmets 中告诉我,这可能是兼容的,这是有道理的,因为您的一个库可以正常工作。如果您确定这两个库都存在于链接器知道的路径中,我不知道为什么会发生这种情况。要么这是一个不正确的推荐行,要么你并没有真正拥有你所说的所有库。请显示您的 gcc 命令行和 GLEW 文件夹中的文件,以便我更好地了解您的情况。

    【讨论】:

    • 虽然基本正确(参见Interoperability of Libraries Created by Different Compiler Brands),但在这种情况下,我预计会出现除cannot find -lglew32s 之外的另一个错误消息。
    • @sschuberth 发生错误是因为他下载了 Windows 文件并尝试链接到不存在的 MinGW 文件。
    • 我不相信这一点。正如this page 所描述的,当指定-l<name> 时,MinGW / GCC 将寻找<name>.lib 除了 lib<name>.a
    • @sschuberth 哇,我不知道。我一直将 MinGW 与 lib<name>.a 一起使用,但不知道它以另一种方式工作。我想可能可以互换使用这些库。
    猜你喜欢
    • 2012-02-04
    • 2012-11-17
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多