SFML2.6 开始--SFML和Linux

介绍

如果您在Linux上使用SFML,那么本教程是您应该阅读的第一本教程。它将解释如何安装SFML,以及编译使用它的项目。

安装SFML

在Linux上安装SFML有不同的方法:

  • 直接从发行版的软件包存储库安装
  • 获取源代码,构建并安装
  • 下载预编译的SDK并手动复制文件

方案1是首选方案;如果要安装的SFML版本在官方存储库中可用,请使用软件包管理器进行安装。例如,在Debian上,您可以:

sudo apt-get install libsfml-dev

方案2需要更多的工作:您需要确保SFML的所有依赖项(包括它们的开发头)都可用,确保安装了CMake,并手动执行一些命令。这将产生一个适合您的系统的软件包。
如果你想走这条路,有一个关于自己构建SFML的专门教程。
最后,如果SFML不是官方软件包,那么方案3是快速安装的好选择。从下载页面下载SDK,解压缩并将文件复制到您的首选位置:个人文件夹中的单独路径(如/home/me/sfml)或标准路径(如/usr/local)。
如果您已经安装了旧版本的SFML,请确保它不会与新版本冲突!

编译SFML程序

在本教程中,我们将不讨论诸如Code::Blocks或Eclipse之类的IDE。我们将重点介绍编译和链接SFML可执行文件所需的命令。编写一个完整的makefile或在IDE中配置一个项目超出了本教程的范围——这里有更好的专门教程。
如果您使用的是Code::Blocks,您可以参考Windows的Code::Blocks教程;很多地方应该是相似的。如果将SFML安装到系统的标准路径之一,则不必设置编译器和链接器搜索路径。
首先,创建一个源文件。对于本教程,我们将其命名为“main.cpp”。将以下代码放入main.cpp文件中:

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}

现在让我们编译它:

g++ -c main.cpp

如果将SFML安装到非标准路径,则需要告诉编译器在哪里可以找到SFML头文件(.hpp文件):

g++ -c main.cpp -I<sfml-install-path>/include

这里,< sfml-install-path >是您复制sfml的目录,例如/home/me/sfml。
然后必须将编译后的文件链接到SFML库,才能获得最终的可执行文件。SFML由5个模块(系统、窗口、图形、网络和音频)组成,每个模块都有一个库。
要链接SFML库,必须在命令行中添加“-lsfml xxx”,例如图形模块的“-lsfml-graphics”(必须省略库文件名的“lib”前缀和“.so”扩展名)。

g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

如果将SFML安装到非标准路径,则需要告诉链接器在哪里可以找到SFML库(.so文件):

g++ main.o -o sfml-app -L<sfml-install-path>/lib -lsfml-graphics -lsfml-window -lsfml-system

我们现在可以执行编译后的程序了:

./sfml-app

如果SFML没有安装在标准路径中,则需要通过指定LD_LIBRARY_path来告诉动态链接器首先在哪里查找SFML库:

export LD_LIBRARY_PATH=<sfml-install-path>/lib && ./sfml-app

如果一切正常,您应该在新窗口中看到:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值