对impl的未定义引用

Undefined reference to impl

本文关键字:引用 未定义 impl      更新时间:2023-10-16

我在Eclipse上设置SFML时遇到错误。我完全按照指示操作,但我仍然会犯这些错误。我尝试过TDM SJLJ和MinGW DW2,它们都给出了不同的未定义引用。

我正在与sfml库动态链接,并且我已经正确地设置了库的路径。

这是我得到的一个:

undefined reference to `_imp___ZN2sf6Window5closeEv' SFMLHelloWorld.cpp /SFMLHelloWorld/src line 15 C/C++ Problem

所有未定义的引用都有前缀_impl。我该如何解决这个问题?

如注释中所述,_imp__表示链接正在查找导入的函数,这意味着它正在查找动态库。

由于您只是简单地测试了两个MinGW版本,我想您不明白它应该如何工作。MinGW构建是不兼容的,因此你需要确保你的库是用你在项目中使用的编译器构建的。SFML网站上预先构建的二进制文件是用旧的编译器版本构建的,我不建议使用这样旧的编译器。

我建议您让MinGWBuilds安装程序接收最新的编译器。接下来,您必须按照官方教程中的描述使用CMake构建SFML,或者如果您无法正确构建,您也可以使用我的SFML Nightly Builds,但您需要再次确保使用相同的编译器。