Compilation 用SFML编译
当我使用SFML编译时,运行.exe的计算机是否需要安装任何SFML或其他文件,或者它可以不必担心地运行应用程序Compilation 用SFML编译,compilation,exe,sfml,Compilation,Exe,Sfml,当我使用SFML编译时,运行.exe的计算机是否需要安装任何SFML或其他文件,或者它可以不必担心地运行应用程序 很抱歉,我只是想问一个noob问题,因为我想使用SFML进行编程作业,这是我第一次。提前感谢首先,您的问题有点让人困惑,因为当您说“使用SFML编译”时,听起来好像您正在使用SFML作为编译器。这是不可能的,因为SFML是一个库而不是一个编译器,所以我假设你的意思是“编译一个使用SFML的程序” 其次,听起来您是从命令行而不是从IDE编译的,但我将回答这两个问题。总之,您需要以某种方
很抱歉,我只是想问一个noob问题,因为我想使用SFML进行编程作业,这是我第一次。提前感谢首先,您的问题有点让人困惑,因为当您说“使用SFML编译”时,听起来好像您正在使用SFML作为编译器。这是不可能的,因为SFML是一个库而不是一个编译器,所以我假设你的意思是“编译一个使用SFML的程序” 其次,听起来您是从命令行而不是从IDE编译的,但我将回答这两个问题。总之,您需要以某种方式“告诉”编译器您正在使用SFML;仅仅使用
import
是不够的。这是通过链接必要的SFML库来实现的
Linux上的命令行
假设您下载了这些文件,导航到它们的目录(我相信是SFML-x)并使用命令sudomakeinstall
安装这些库
要从命令行链接文件,需要使用-l
标记进行链接(即短划线l,而不是短划线1)。例如,如果我制作了一个名为circle.cpp
的小程序,它使用SFML,如下所示:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(240, 240), "Test Window");
sf::CircleShape circle(20.f);
circle.setFillColor(sf::Color::Red);
while (window.isOpen())
{
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
#包括
int main()
{
sf::RenderWindow窗口(sf::VideoMode(240240),“测试窗口”);
sf::圆形(20.f);
circle.setFillColor(sf::Color::Red);
while(window.isOpen())
{
window.clear();
窗口。绘制(形状);
window.display();
}
返回0;
}
然后,为了编译(例如使用g++),我只需要编写以下命令:g++-c circle.cpp
。但是,要创建final.exe,我需要将输出的circle.o
文件与适当的SFML库链接起来,如:g++-o circle.o-lsfml graphics
集成电路设备
像这样的IDE比SFML的命令行更容易使用。在IDE中,需要在名为“外部依赖项”的部分中设置设置,以包括SFML库。您还需要在“链接器”部分中链接SFML库。这些部分在您的项目设置中通常是合理的。有关屏幕截图,请参阅SFML的非常好的教程,这将使我的描述更容易理解。我不完全确定您在问什么,但我认为您在问如何使用和编译SFML 您可以做的最好的事情是转到正式的SFML文档。它写得很好,解释了你需要启动和运行的一切 您可以在此处找到入门的官方教程: (这是针对Visual Studio的) 如果您仔细地完成了每个步骤,那么SFML应该可以完美地运行。此外,如果您需要Visual Studio,可以从以下位置免费下载:
不要忘记处理事件。