c++ - SFML2 与 mingw32 : undefined references 的静态链接错误

标签 c++ linker-errors sfml undefined-reference

我在 64 位 Windows 7、MinGW 4.7.1 上使用 Code::Blocks。

我试图让 SFML 2.1 在代码块中与 MingW 一起工作,但它会导致问题。

当我尝试编译时出现这些错误:

undefined reference to _imp___ZN2sf6StringC1EPKcRKSt6locale

undefined reference to _imp___ZN2sf9VideoModeC1Ejjj

...

我正在链接以下库:

  • sfml 图形
  • sfml 窗口
  • sfml 系统

我做错了什么?错误说 undefined reference ,但我已经关注了 these instructions一步一步。

最佳答案

当尝试链接库的静态版本时,您基本上也必须使用 header 的静态版本(否则您实际上是在错误的位置查找引用(更具体地说:使用错误的格式/修饰))。

因此,在链接静态版本时,请始终确保在包含任何 SFML header 之前定义了 SFML_STATIC

另外,确保链接库的静态版本(带有 -s 后缀)。


静态SFML

  • 定义SFML_STATIC
  • 链接到 sfml-system-ssfml-window-ssfml-graphics-s 等(或它们的调试版本)。

动态 SFML

  • 不要定义SFML_STATIC
  • 链接到 * sfml-system*、sfml-windowsfml-graphics 等(或其调试版本)。

关于c++ - SFML2 与 mingw32 : undefined references 的静态链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577963/

相关文章:

c - 使用 IAR 工具链将目标文件链接到不可执行的镜像

c++ - 重新初始化父类时,SFML 对象不会绘制

c++ - Texture.loadFromFile 不起作用

c++ - 如何在不留下 Unresolved external 问题的情况下在 Box2D 中创建一个世界

c++ - QT QImage,如何提取RGB?

c++ - 作为 std::initializer_list 对象的抽象类

c++ - fatal error LNK1120 : 1 unresolved externals in c++

c - 想通过使用realloc来增加动态数组但没有成功

c++ - 在 C++ 中声明对象和使用 typedef 的顺序

C++随机数1-9