【问题标题】:SFML with Code::Blocks - "undefined reference to sf::Texture::getSize()"带有 Code::Blocks 的 SFML -“对 sf::Texture::getSize() 的未定义引用”
【发布时间】:2015-01-09 15:58:25
【问题描述】:

我使用本教程 http://www.sfml-dev.org/tutorials/2.0/start-cb.php 将 SFML 添加到我的 Code::Blocks 项目中,但我遇到了这样的错误:

undefined reference to sf::Texture::getSize() const
undefined reference to sf::Sprite::Sprite()
undefined reference to sf::Sprite::setTexture(sf::Texture const&, bool)

以下是我的设置截图:

班轮设置:

编译器的搜索目录:

链接器的搜索目录:

编译器设置:

||=== Build: Release in Space (compiler: GNU GCC Compiler) ===|
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Sprite::Sprite()'
 undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
 undefined reference to `sf::Transformable::setPosition(float, float)'
 undefined reference to `sf::Sprite::Sprite()'
 undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
 undefined reference to `sf::Transformable::setPosition(float, float)'
 undefined reference to `sf::RenderStates::Default'
 undefined reference to `sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates const&)'
 undefined reference to `vtable for sf::Sprite'
 undefined reference to `vtable for sf::Sprite'
 undefined reference to `sf::Transformable::~Transformable()'
 (.text$_ZN2sf6SpriteD1Ev[__ZN2sf6SpriteD1Ev]+0x3e)
undefined reference to `vtable for sf::Sprite'
 (.text$_ZN2sf6SpriteD1Ev[__ZN2sf6SpriteD1Ev]+0x45)
undefined reference to `vtable for sf::Sprite'
 (.text$_ZN2sf6SpriteD1Ev[__ZN2sf6SpriteD1Ev]+0x57)
 undefined reference to `sf::Transformable::~Transformable()'|
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined references to `sf::Texture::getSize() const' follow
 undefined reference to `sf::Clock::Clock()'
 undefined reference to `sf::seconds(float)'
 undefined reference to `sf::Time::Time()'
 undefined reference to `sf::operator<(sf::Time, sf::Time)'
 undefined reference to `sf::Time::Zero'
 undefined reference to `sf::Time::Zero'
 undefined reference to `sf::Clock::restart()'
 undefined reference to `sf::operator+=(sf::Time&, sf::Time)'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Texture::getSize() const'
 undefined reference to `sf::Sprite::Sprite()'
 undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
 undefined reference to `sf::Transformable::setPosition(float, float)'
 undefined reference to `sf::Sprite::Sprite()'
 undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
 undefined reference to `sf::Transformable::setPosition(float, float)'
 undefined reference to `sf::RenderStates::Default'
 undefined reference to `sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates  const&)'|
 undefined reference to `vtable for sf::Sprite'
 undefined reference to `vtable for sf::Sprite'
 undefined reference to `sf::Transformable::~Transformable()'
 undefined reference to `sf::Sprite::getGlobalBounds() const'
 undefined reference to `sf::Sprite::getTextureRect() const'
 undefined reference to `sf::Transformable::getScale() const'
 undefined reference to `sf::Transformable::getTransform() const'
 undefined reference to `sf::Sprite::getTextureRect() const'
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

【问题讨论】:

  • 您是否按照该教程中的链接器说明进行操作?因为您显然没有链接到库。
  • @mbgda 我试图一步一步地学习教程,也包括链接器说明
  • 我们可以从您发布的内容中看出您没有链接到库。我们不知道有关您如何设置项目的任何相关信息。您是在尝试链接静态库还是动态库?你的链接器设置是什么?等等。
  • 请提供构建日志。
  • 这不应该导致链接器错误,但是您已经定义了 SFML_STATIC 但似乎您正在链接动态库(根据您链接的文档,静态命名为 LIBNAME-s RELEASE 和 LIBNAME-s-d 用于调试)

标签: c++ linker static-libraries sfml


【解决方案1】:

我想我发现了你的问题。我怀疑您需要从这里下载 SFML GCC 4.7 TDM (SJLJ) - 32 位 http://www.sfml-dev.org/download/sfml/2.1/ - 您可能使用了错误版本的库。

【讨论】:

    猜你喜欢
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2011-10-24
    • 2016-08-12
    相关资源
    最近更新 更多