手动在Visual Studio上配置SFML

问题描述 投票:0回答:1

当人们尝试手动配置他们的VS项目时,这个Q&A帖子来自与lots图书馆有关的lotsquestions。有时答案不完整或者说太具体了。

我想在一篇文章中编译如何配置VS以便能够静态和动态地使用SFML库。

所以:

1.如何以一般方式动态配置库的VS项目?

2.如何以一般方式静态配置库的VS项目?

visual-studio libraries sfml
1个回答
1
投票

First, I recommend carefully follow the about configuring the library in Visual Studio, if something goes wrong, then check this answer.


我将这个答案分为两组,如何将SFML tutorial配置为动态库以及如何将其作为静态库。

Common steps

  1. 让我们创建一个VS项目(我将使用VS2013和SFML 2.5.1,但它与其他版本几乎相同)。将其创建为ConsoleApplication并选中Empty Project。
  2. 下载 ,最新的稳定版本,最好选择相应的系统(在我的例子中,Visual C ++ 12(2013) - 64位)。解压缩libraries文件所在的文件。这将根据您的版本创建名为SFML-X.X.X的文件夹。
  3. 下载.vcxproj,在我的情况下external libraries版本。在库文件夹中创建一个名为extlib的文件夹,并将此外部库放在那里。
  4. 创建一个64 bits文件,并粘贴main.cpp中的示例代码。
SFML tutorials

SFML As Dynamic Library

  1. 转到Build-> Configuration Manager。如果您使用的是64位库,首先应创建一个新的解决方案平台。单击Active Solutions Platform-> New,从Win32配置中选择x64复制。我更喜欢取消选中Create new project platforms。
  2. 创建Debug-Dynamic和Release-Dynamic编译配置文件。选择活动解决方案平台后,单击Configuration(项目的)和New。您可以将其命名为Debug-Dynamic并从Debug配置中复制它(同样,取消选中Create new ...)。重复创建Release-Dynamic配置。
  3. 打开项目属性 - >调试。选择Debug-Dynamic configuration并使用此值#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; } 修改字段Environment。这将指示VS可以找到PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%库。
  4. 在C / C ++部分,通过添加此路径.dll来修改其他包含目录字段。这将指示VS位于$(ProjectDir)\SFML-2.5.1\include文件的位置。
  5. 在“链接器”部分,通过添加此路径.hpp来修改“附加库目录”字段。这将指示VS可以找到$(ProjectDir)\SFML-2.5.1\lib文件。
  6. 最后,在Linker-> Input上,通过添加所需的所有.lib文件来修改Additional dependencies字段:
.lib

注意 sfml-audio-d.lib sfml-graphics-d.lib sfml-network-d.lib sfml-system-d.lib sfml-window-d.lib 后缀表示调试库

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

SFML As Static Library

  1. 转到Build-> Configuration Manager。创建Debug-Static和Release-Static编译配置文件。选择活动解决方案平台后,单击Configuration(项目的)和New。您可以将其命名为Debug-Static并从Debug配置中复制它(同样,取消选中Create new ...)。重复创建Release-Static配置。
  2. 打开Project Properties并选择Debug-Static配置。在C / C ++部分,通过添加此路径-d来修改其他包含目录字段。这将指示VS位于$(ProjectDir)\SFML-2.5.1\include文件的位置。
  3. 在C / C ++ section-> Preprocessor *上,通过添加.hpp定义来修改预处理器定义字段。这将指示预处理器将静态编译SFML。
  4. 在“链接器”部分中,通过添加此路径SFML_STATIC来修改“附加库目录”字段。这将指示VS可以找到来自外部源和SFML的$(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;文件。
  5. 最后,在Linker-> Input部分,修改Additional dependencies字段,包含所需的所有.lib文件:
.lib

注意 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 后缀表示调试库

注2:-d后缀表示静态库

  1. 使用Release-Static配置重复步骤2到5。注意,在第5步,库文件没有-s后缀,因为它们是发布库,但它们将保留-d后缀。
© www.soinside.com 2019 - 2024. All rights reserved.