我认为这可能是您下载的gcc发行版的问题。
对问题的一点了解给出了ruben的问题:
https://unix.stackexchange.com/questions/45277/executing-binary-file-file-not-found
这似乎与我有关(虽然它是关于Linux而不是赢)
几个月前,gcc 4.7.0 linux-> win crosscompiler,我遇到了类似的问题(丢失文件的名称不同)。所以到现在为止我一直使用标准的ubuntu mingw-w64软件包,直到昨天我再次尝试了i686-w64-mingw32-gcc-4.7.2-release-linux64_rubenvb.tar.xz,它在其他相同的环境下工作没有问题以前的版本失败了“..ar.exe:...没有这样的文件”。有时我也在windows中开发,然后我用 http://www.mingw.org/ 这对我来说更容易在Win中设置。它只支持32位目标,但对于我的项目来说已经足够了。
的 2015年1月编辑 强>
现在已经发布了SFML 2.2,这不再是一个问题,您必须在链接静态时自己链接SFML的依赖项。
的 2014年1月编辑 强>
提交时 165f2b1888 和 f784fe4c07 ,它包含在稳定版SFML 2.1中,支持MinGW-w64编译器。
然而,在与不同方面进一步讨论时,它被曝光了 sfml_static_add_libraries 马克是一个相当丑陋的黑客。简而言之,它解压缩静态依赖项并将其obj文件包含在SFML库本身中。当尝试使用您自己的GLEW版本时,这是一个最明显的问题,因为SFML已经使用了它的内部版本,因此失败了。这个问题被提到了 论坛 并且被推了很长一段时间,直到Laurent最终屈服并以正确的方式连接依赖关系,这意味着你必须自己将它们链接起来。
sfml_static_add_libraries
提交时 dbf01a775b ,是的 不 包含在SFML 2.1的稳定版本中,当与SFML静态链接时,必须链接finally应用程序中的SFML依赖项。
的 原版的 强>
在IRC上进行一些聊天之后,我们已经弄明白了。 它与MinGW无关,但这都是SFML的错。为了减少静态链接时SFML的依赖项列表,开发人员决定手动从每个库中提取符号(opengl32,ws2_32,...),这显然不是人们如何处理并违反某些ODR规则。然后发生实际错误,因为开发人员假定库将在文件夹中 mingw/lib 但是使用MinGW w64,它位于一个单独的目录中 mingw/version/lib 所以 ar.exe 没找到图书馆。
mingw/lib
mingw/version/lib
ar.exe
的 解 强>
删除对的呼叫 sfml_static_add_libraries 宏然后重新编译。之后,您将必须链接静态链接的所有依赖项,就像它应该的那样。