在 Visual Studio 上手动配置 SFML
Configuring SFML on Visual Studio manually
此问答 post 来自 lots and of questions related to sfml 库,当人们尝试手动配置他们的 VS 项目时。有时答案不完整或过于具体。
我想在单个 post 中编译如何配置 VS 以便能够静态和动态地使用 SFML 库。
所以:
1.我如何使用 sfml 库 动态地 配置我的 VS 项目?
2。如何以一般方式使用 sfml 库 静态 配置我的 VS 项目?
首先,我建议仔细遵循 SFML tutorial 关于在 Visual Studio 中配置库的内容,如果出现问题,请检查此答案。
我会把这个答案分成两组,如何配置sfml作为动态库和如何配置作为静态库.
常用步骤
我们来创建一个VS工程(我会用VS2013和SFML 2.5.1,其他版本都差不多)。将其创建为 ConsoleApplication 并检查 Empty Project.
下载sfml库,最好是最新的稳定版,select你对应的系统(在我的情况下Visual C++ 12 (2013) - 64 位)。将此文件提取到您的 .vcxproj
文件所在的位置。这将创建一个名为 SFML-X.X.X 的文件夹,具体取决于您的版本。
下载external libraries, in my case 64 bits版本。在库文件夹中创建一个名为 extlib 的文件夹,并将这个外部库放在那里。
创建一个 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 作为动态库
转到构建->配置管理器。如果您使用的是 64 位库,首先您应该创建一个新的解决方案平台。单击 Active Solutions Platform->New,select x64 从 Win32 复制配置。我更喜欢取消选中 创建新项目平台。
创建 Debug-Dynamic 和 Release-Dynamic 编译配置文件。使用您的活动解决方案平台 selected,单击 Configuration(项目的)和 New。您可以将其命名为 Debug-Dynamic 并从调试配置中复制它(另外,取消选中 Create new...)。重复创建 Release-Dynamic 配置。
打开项目属性->调试。 Select Debug-Dynamic 配置并使用此值 PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%
修改字段 Environment。这将指示 VS 在何处可以找到 .dll
个库。
在 C/C++ 部分,修改 Additional include directories 字段,添加此路径 $(ProjectDir)\SFML-2.5.1\include
。这将指示 .hpp
文件所在的 VS。
在 Linker 部分,通过添加此路径 $(ProjectDir)\SFML-2.5.1\lib
修改 Additional library directories 字段。这将指示 VS 在何处可以找到 .lib
个文件。
最后,在 Linker->Input 上,修改 Additional dependencies 字段,添加所有 .lib
需要的文件:
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib
注意-d
后缀表示调试库
- 使用 Release-Dynamic 配置重复步骤 3 到 6。 注意,在第 6 步,库文件没有
-d
后缀,因为它们是发布库
SFML 作为静态库
转到构建->配置管理器。创建 Debug-Static 和 Release-Static 编译配置文件。使用您的活动解决方案平台 selected,单击 Configuration(项目的)和 New。您可以将其命名为 Debug-Static 并从调试配置中复制它(另外,取消选中 Create new...)。重复创建 Release-Static 配置。
打开项目属性和selectDebug-Static配置。在 C/C++ 部分,通过添加此路径 $(ProjectDir)\SFML-2.5.1\include
修改 Additional include directories 字段。这将指示 .hpp
文件所在的 VS。
在C/C++部分->Preprocessor*,修改Preprocessor definitions字段,添加SFML_STATIC
定义。这将指示预处理器 SFML 将被静态编译。
在 Linker 部分,通过添加此路径 $(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;
修改 Additional library directories 字段。这将指示 VS 在何处可以找到来自 外部来源 和来自 SFML 的 .lib
文件。
最后,在 Linker->Input 部分,修改 Additional dependencies 字段所有 .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
注意-d
后缀表示调试库
注2 -s
后缀表示静态库
- 使用 Release-Static 配置重复步骤 2 到 5。 注意,在第 5 步,库文件没有
-d
后缀,因为它们是发布库,但它们将保留 -s
后缀。
此问答 post 来自 lots and
我想在单个 post 中编译如何配置 VS 以便能够静态和动态地使用 SFML 库。
所以:
1.我如何使用 sfml 库 动态地 配置我的 VS 项目?
2。如何以一般方式使用 sfml 库 静态 配置我的 VS 项目?
首先,我建议仔细遵循 SFML tutorial 关于在 Visual Studio 中配置库的内容,如果出现问题,请检查此答案。
我会把这个答案分成两组,如何配置sfml作为动态库和如何配置作为静态库.
常用步骤
我们来创建一个VS工程(我会用VS2013和SFML 2.5.1,其他版本都差不多)。将其创建为 ConsoleApplication 并检查 Empty Project.
下载sfml库,最好是最新的稳定版,select你对应的系统(在我的情况下Visual C++ 12 (2013) - 64 位)。将此文件提取到您的
.vcxproj
文件所在的位置。这将创建一个名为 SFML-X.X.X 的文件夹,具体取决于您的版本。下载external libraries, in my case 64 bits版本。在库文件夹中创建一个名为 extlib 的文件夹,并将这个外部库放在那里。
创建一个
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 作为动态库
转到构建->配置管理器。如果您使用的是 64 位库,首先您应该创建一个新的解决方案平台。单击 Active Solutions Platform->New,select x64 从 Win32 复制配置。我更喜欢取消选中 创建新项目平台。
创建 Debug-Dynamic 和 Release-Dynamic 编译配置文件。使用您的活动解决方案平台 selected,单击 Configuration(项目的)和 New。您可以将其命名为 Debug-Dynamic 并从调试配置中复制它(另外,取消选中 Create new...)。重复创建 Release-Dynamic 配置。
打开项目属性->调试。 Select Debug-Dynamic 配置并使用此值
PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%
修改字段 Environment。这将指示 VS 在何处可以找到.dll
个库。在 C/C++ 部分,修改 Additional include directories 字段,添加此路径
$(ProjectDir)\SFML-2.5.1\include
。这将指示.hpp
文件所在的 VS。在 Linker 部分,通过添加此路径
$(ProjectDir)\SFML-2.5.1\lib
修改 Additional library directories 字段。这将指示 VS 在何处可以找到.lib
个文件。最后,在 Linker->Input 上,修改 Additional dependencies 字段,添加所有
.lib
需要的文件:
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib
注意-d
后缀表示调试库
- 使用 Release-Dynamic 配置重复步骤 3 到 6。 注意,在第 6 步,库文件没有
-d
后缀,因为它们是发布库
SFML 作为静态库
转到构建->配置管理器。创建 Debug-Static 和 Release-Static 编译配置文件。使用您的活动解决方案平台 selected,单击 Configuration(项目的)和 New。您可以将其命名为 Debug-Static 并从调试配置中复制它(另外,取消选中 Create new...)。重复创建 Release-Static 配置。
打开项目属性和selectDebug-Static配置。在 C/C++ 部分,通过添加此路径
$(ProjectDir)\SFML-2.5.1\include
修改 Additional include directories 字段。这将指示.hpp
文件所在的 VS。在C/C++部分->Preprocessor*,修改Preprocessor definitions字段,添加
SFML_STATIC
定义。这将指示预处理器 SFML 将被静态编译。在 Linker 部分,通过添加此路径
$(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;
修改 Additional library directories 字段。这将指示 VS 在何处可以找到来自 外部来源 和来自 SFML 的.lib
文件。最后,在 Linker->Input 部分,修改 Additional dependencies 字段所有
.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
注意-d
后缀表示调试库
注2 -s
后缀表示静态库
- 使用 Release-Static 配置重复步骤 2 到 5。 注意,在第 5 步,库文件没有
-d
后缀,因为它们是发布库,但它们将保留-s
后缀。