我决定尝试this YouTube video中描述的内容(使用C ++构建俄罗斯方块游戏)(我 提及视频以供参考)。
我有Code :: Blocks 17.12。我从their download page安装了SFML(GCC 4.9.2 TDM(SJLJ) - 32位),因为"编译器必须匹配100%"我还从其下载页面上提供的链接安装了TDM 4.9.2(32位)(在某种程度上忽略了这个细节之前没有遇到错误),并在Code :: Blocks中将其设置为我的编译器。 / p>
我按照SFML页面上的教程进行操作。我遇到了一些错误,但设法修复它们(例如上一个括号中提到的那个......等等)。一切都很顺利,所以我转到了YouTube视频中显示的代码。在代码
的位置#include <SFML/Graphics.hpp>
#include <time.h>
using namespace sf;
int main()
{
RenderWindow window(VideoMode(320, 480), "window");
Texture t;
t.loadFromFile("images/tiles.png");
Sprite s(t);
while (window.isOpen())
{
Event e;
while (window.pollEvent(e))
{
if (e.type == Event::Closed)
window.close();
}
window.clear(Color::White);
window.display();
}
return 0;
}
(对于记录)我收到错误
||=== Build: Release in Tetris (compiler: GNU GCC Compiler) ===|
obj\Release\main.o:main.cpp:(.text.startup+0x24c)||undefined reference to `_imp___ZN2sf7Texture12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traits
IcESaIcEEERKNS_4RectIiEE'|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 3 second(s)) ===|
这是我的问题。
An answer to a related SO question建议我理解为&#34;你必须在C :: B中使用相同的东西 编译器作为用于编译SMFL&#34;的编译器。但是我认为我确保了这一点。
Another related SO question我读过但却无法理解任何事情。我是一个完整的 noob to C / C ++并且不能做得多,不加思索地跟随 例如,方向是在SFML网站的教程中提供的......所以,如果有人可以帮助我,我会很感激 - 它可以被用来工作还是我必须自己构建SFML?
编辑:Here是我的链接器设置的屏幕截图。
答案 0 :(得分:0)
您在评论中提供了this link,看起来您的链接器设置应如下所示:
sfml-window-s
sfml-system-s
opengl32
freetype
jpeg
当我尝试使用SFML时,我遇到了与此类似的问题,并且正确顺序的链接器设置是问题。