当人们尝试手动配置他们的VS项目时,这个Q&A帖子来自与lots图书馆有关的lots和questions。有时答案不完整或者说太具体了。
我想在一篇文章中编译如何配置VS以便能够静态和动态地使用SFML库。
所以:
1.如何以一般方式动态配置sfml库的VS项目?
2.如何以一般方式静态配置sfml库的VS项目?
我将这个答案分为两组,如何将SFML tutorial配置为动态库以及如何将其作为静态库。
.vcxproj
,在我的情况下external libraries版本。在库文件夹中创建一个名为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;
}
修改字段Environment。这将指示VS可以找到PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%
库。.dll
来修改其他包含目录字段。这将指示VS位于$(ProjectDir)\SFML-2.5.1\include
文件的位置。.hpp
来修改“附加库目录”字段。这将指示VS可以找到$(ProjectDir)\SFML-2.5.1\lib
文件。.lib
文件来修改Additional dependencies字段:.lib
注意 sfml-audio-d.lib
sfml-graphics-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib
后缀表示调试库
-d
后缀,因为它们是发布库-d
来修改其他包含目录字段。这将指示VS位于$(ProjectDir)\SFML-2.5.1\include
文件的位置。.hpp
定义来修改预处理器定义字段。这将指示预处理器将静态编译SFML。SFML_STATIC
来修改“附加库目录”字段。这将指示VS可以找到来自外部源和SFML的$(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;
文件。.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
后缀表示静态库
-s
后缀,因为它们是发布库,但它们将保留-d
后缀。