链接 GLEW 失败

Posted

技术标签:

【中文标题】链接 GLEW 失败【英文标题】:Linking GLEW fail 【发布时间】: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 时,我遇到了与动态链接相关的其他类型的错误(未定义的引用),所以我知道我的路径设置正确。

【问题讨论】:

【参考方案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 一起使用,但不知道它以另一种方式工作。我想可能可以互换使用这些库。

以上是关于链接 GLEW 失败的主要内容,如果未能解决你的问题,请参考以下文章

将 GLEW 与 cmake 链接的问题

客户端程序中的 glewInit() 和 GLEW_ARB_xxx_ 失败

glewInit 失败:缺少 GL 版本

Opengl macos失败

使用C++库GLEW在openGl中绘制一个红色三角形[关闭]

创建网格和启动窗口 SDL/GLEW C++ 时访问冲突