SFML库的安装
sudo apt-get sudo apt-get install libsfml-dev
ubuntu会将库文件安装到/usr/include
目录下
编译报错
CMakeFiles/04_Snake.dir/main.cpp.o:在函数‘main’中:
main.cpp:42:对‘sf::String::String(char const*, std::locale const&)’未定义的引用
main.cpp:42:对‘sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)’未定义的引用
main.cpp:42:对‘sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)’未定义的引用
main.cpp:44:对‘sf::Texture::Texture()’未定义的引用
main.cpp:44:对‘sf::Texture::Texture()’未定义的引用
这是因为默认CMakeLists文件没有链接关系导致的c++编译过程的依赖库连接错误。
手动添加CMakeLists文件如下
cmake_minimum_required(VERSION 3.19)
project(04_Snake)
set(CMAKE_CXX_STANDARD 14)
set(EXECUTABLE_NAME "04_Snake")
add_executable(${EXECUTABLE_NAME} main.cpp)
target_link_libraries(${EXECUTABLE_NAME} sfml-graphics sfml-window sfml-system)
测试编译以下代码,成功
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
sf::RenderWindow window(VideoMode(480, 320), "Snake Game!");
return 0;
}