链接 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 失败的主要内容,如果未能解决你的问题,请参考以下文章
客户端程序中的 glewInit() 和 GLEW_ARB_xxx_ 失败