【问题标题】:Undefined reference to (SFML)未定义的引用 (SFML)
【发布时间】:2018-10-22 14:23:50
【问题描述】:

我正在尝试将 SFML 与 CMake 链接,但我在 make 上有一些问题:

/home/ishidex2/Documents/QtCreator/CMakeExample/main.cpp:-1: error: undefined reference to `sf::String::String(char const*, std::locale const&)'

还有一些类似这样的错误。

首先,我通过这个命令安装了SFML:

sudo apt-get install libsfml-dev

然后按照本教程进行操作:

https://github.com/SFML/SFML/wiki/Tutorial:-Build-your-SFML-project-with-CMake

我认为这是链接的问题,但我不知道如何解决。

我的链接顺序是:

find_package(SFML 2 REQUIRED graphics window main system)

【问题讨论】:

  • 您是否对教程中提供的 makefile 进行了任何更改?您能否将您的 makefile 包含在问题的正文中?
  • 没有,只是复制了。
  • 即使您“按原样”从网站复制代码,Stack Overflow 需要将代码添加到问题帖子本身。简单的链接是不够的。对于您使用 SFML 2.5 的情况,本教程的开头有一个注释:!!! This tutorial doesn't work for SFML 2.5 anymore !!!。 (如果您使用较旧的 SFML 而没有附带 CMake 配置文件,我想知道您是如何使 find_package(SFML) 工作的:您应该下载并添加到您的项目中的文件 FindSFML.cmake 的链接是 dead.)

标签: c++ cmake linker-errors sfml


【解决方案1】:

find_package 不执行任何链接,您需要使用target_link_libraries,如您自己发布的链接所示:

target_link_libraries(${EXECUTABLE_NAME} ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})

【讨论】:

  • 我从教程中复制了 CMakeLists.txt 文件,但没有帮助。
猜你喜欢
  • 2013-12-26
  • 2014-10-25
  • 1970-01-01
  • 2017-03-11
  • 2018-07-17
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多