我刚开始使用Lazy Foo的教程搞砸了SDL2而且我遇到了一些问题。建设时我遇到两个错误:
找不到lsdl
找不到lsdlmain
现在...当然找不到那些,因为它们不在我链接的lib文件夹中。我只有lsdl2main和lsdl2。我把SDL2.dll放在我的项目文件夹中并按照Lazy Foo的说法做了一切,但我仍然有这个问题。我设法通过从lib文件夹复制lsdl2和lsdl2main并将它们更改为lsdl和lsdlmain来绕过此问题。现在我有lsdl / lsdlmain和lsdl2 / lsdlmain ...即使它们是相同的库。我不认为这是好的,这就是为什么我问这个问题。解决这个问题的正确方法是什么?我在懒惰foo上读到有关编译器在64位上选择32位库的一些内容,但我使用的是32位文件夹中的32位库,所以我不确定这是否是一个问题。
答案 0 :(得分:1)
正确的方法是在链接器选项中使用sdl2main
和sdl2
而不是过时的sdlmain
和sdl
。 Lazy Foo的教程已经过时,如果您打算使用SDL2而不是SDL 1.x(这是教程所基于的版本),显然需要进行一些修正。
答案 1 :(得分:1)
这个问题已经有一年了,但我希望这仍然有助于有人努力寻找答案。如果你在Code Blocks上关注Lazy Foo的教程“设置SDL”,你可能不小心通过Google打开了他的旧教程。 http://lazyfoo.net/SDL_tutorials/代替http://lazyfoo.net/tutorials/SDL/,其中包含更新的说明。
他的旧表明你必须在Global Compiler的链接器上填写-lsdl和-lsdlmain,它位于Settings>下。编译器..>链接器设置。然后你以某种方式打开了他的新教程,该教程向您展示了在Build选项的链接器下填充-lSDL2main -lSDL2。
只需检查全局编译器的链接器或构建选项的链接器设置是否正确。在任一个上设置-lSDL2main -lSDL2标志都应该有效。