在Visual Studio上手动配置SFML

时间:2019-02-20 16:32:26

标签: visual-studio libraries sfml

此问答环节来自lotslotsquestions中与库相关的内容,当人们尝试手动配置其VS项目时。有时答案不完整或过于具体。

我想在一篇文章中介绍如何配置VS,使其能够静态和动态地使用SFML库。

所以:

1。如何以一般方式动态地使用 配置我的VS项目?

2。如何以一般方式通过静态配置我的VS项目?

1 个答案:

答案 0 :(得分:0)

首先,我建议您仔细遵循SFML tutorial在Visual Studio中配置库,如果出现问题,请检查此答案。


我将这个答案分为两类,如何将 配置为动态库,以及如何将其配置为静态库

常用步骤

  1. 让我们创建一个VS项目(我将使用VS2013和SFML 2.5.1,但与其他版本几乎相同)。将其创建为 ConsoleApplication 并选中 Empty Project

  2. 最好下载 libraries(最新的稳定版本),然后选择相应的系统(在我的情况下为 Visual C ++ 12(2013)-64位)。将此文件解压缩到您的.vcxproj文件所在的位置。根据您的版本,这将创建一个名为 SFML-X.X.X 的文件夹。

  3. 下载external libraries,在我的情况下为64 bits版本。在库文件夹中创建一个名为 extlib 的文件夹,并将此外部库放置在此处。

  4. 创建一个main.cpp文件,然后粘贴SFML tutorials中的示例代码。

#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;
}

SFML作为动态库

  1. 转到 Build-> Configuration Manager 。如果使用的是64位库,则首先应创建一个新的解决方案平台。单击 Active Solutions Platform-> New ,然后从 Win32 配置中选择 x64 复制。我更喜欢取消选中 创建新项目平台

  2. 创建 Debug-Dynamic Release-Dynamic 编译配置文件。选择活动的解决方案平台后,单击(项目的)配置新建。您可以将其称为 Debug-Dynamic ,并从Debug配置中复制它(也请取消选中 Create new ... )。重复创建动态发布配置。

  3. 打开项目属性->调试。选择 Debug-Dynamic (调试动态)配置,并使用值PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%. This will indicate VS where修改 Environment 字段。可以找到dll库。

  4. C / C ++ 部分中,通过添加此路径$(ProjectDir)\SFML-2.5.1\include来修改其他包含目录字段。这将指示VS .hpp文件的位置。

  5. Linker 部分中,通过添加此路径$(ProjectDir)\SFML-2.5.1\lib来修改其他库目录字段。这将指示VS在哪里可以找到.lib个文件。

  6. 最后,在 Linker-> Input 上,通过添加所需的所有.lib文件来修改其他依赖项字段:

    sfml-audio-d.lib
    sfml-graphics-d.lib
    sfml-network-d.lib
    sfml-system-d.lib
    sfml-window-d.lib

注意-d后缀以表示调试库

  1. 使用动态发布配置重复步骤3至6。 注意,在第6步中,库文件没有后缀-d,因为它们是发布库

SFML作为静态库

  1. 转到 Build-> Configuration Manager 。创建 Debug-Static Release-Static 编译配置文件。选择活动的解决方案平台后,单击(项目的)配置新建。您可以将其称为 Debug-Static 并从Debug配置中复制它(也请取消选中 Create new ... )。重复创建发布静态配置。

  2. 打开项目属性并选择 Debug-Static 配置。在 C / C ++ 部分中,通过添加此路径$(ProjectDir)\SFML-2.5.1\include来修改其他包含目录字段。这将指示VS .hpp文件的位置。

  3. C / C ++ 部分-> Preprocessor *上,通过添加SFML_STATIC定义来修改 Preprocessor定义字段。这将指示预处理器SFML将被静态编译。

  4. Linker 部分中,通过添加此路径$(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;来修改其他库目录字段。这将指示VS,可以在其中找到外部来源和SFML的.lib文件。

  5. 最后,在 Linker-> Input 部分中,使用所有需要的.lib文件修改 Additionaldependents 字段:

    sfml-audio-s-d.lib
    sfml-graphics-s-d.lib
    sfml-network-s-d.lib
    sfml-system-s-d.lib
    sfml-window-s-d.lib
    flac.lib
    freetype.lib
    ogg.lib
    openal32.lib
    opengl32.lib
    vorbis.lib
    vorbisenc.lib
    vorbisfile.lib
    winmm.lib
    gdi32.lib
    ws2_32.lib

注意-d后缀以表示调试库

Note2 -s后缀表示静态库

  1. 使用发布静态配置重复步骤2到5。 注意,在第5步中,库文件没有后缀-d,因为它们是发行库,但它们将保留后缀-s