2014-10-06 24 views
0

我在Eclipse上遇到了设置SFML的错误。我完全按照说明操作,但仍然收到这些错误。我试过TDM SJLJMinGW DW2 - 都给出了不同的未定义的引用。未定义的引用impl

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

这里有一个我得到:

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

所有未定义的引用前缀为_impl他们。我该如何解决?

+0

好像你没有正确设置库路径。编译器无法找到某些函数的定义。 – gldraphael 2014-10-06 16:31:28

+0

'我动态链接到sfml库'这些库是'导入库'还是'静态库'?错误中的“imp”意味着“import”。如果你给它链接到静态库,那么这是不好的。您需要提供导入库。 – PaulMcKenzie 2014-10-06 16:31:31

+0

@PaulMcKenzie如何获取导入库? – user2030677 2014-10-06 16:37:23

回答

1

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

既然你只是测试了两个MinGW版本,我假设你不明白它应该如何工作。 MinGW构建不兼容,因此您需要确保您的库已使用您用于该项目的编译器构建。 SFML网站上的预建二进制文件是使用较旧的编译器版本构建的,我不能建议使用这样的旧编译器。

我建议你得到MinGW Builds安装程序来接收最新的编译器。接下来,您必须按照official tutorial中所述,使用CMake构建SFML,或者如果无法正确构建SFML,也可以使用我的Nightly Builds of SFML,但同样需要确保使用相同的编译器。

+0

我下载每晚构建后应该做什么? – user2030677 2014-10-08 17:55:57

+0

使用[官方教程](http://sfml-dev.org/tutorials/2.1/start-cb.php)并开始自行学习。 – Lukas 2014-10-08 21:28:52