2015-08-18 166 views
1

我正在做SDL教程,並且我遇到了一些問題 我剛剛做了this,我在那裏做了讓SDL運行的基本內容。然後我運行測試代碼(在該頁面上)並且它工作。但是,現在我試圖運行代碼here,它給我this錯誤列表。SDL_Window未在此範圍內聲明

可能是什麼問題?有一件奇怪的事,我不知道它是否相關,爲了讓第一個代碼運行,我必須將SDL2.dll放在SysWOW64文件夾中,即使我的編譯器和庫的版本都是32位。再次,我不知道這是否意味着什麼,特別是因爲我第一件事情就是完美運行。

編輯此外,Code :: Blocks顯示SDL_platform.h中的錯誤,該文件與我的01_hello_SDL.cpp完全相同。我是SDL的完全noob,儘管我已經完成了一些純粹的C++,但我之前沒有使用過外部庫,所以我不知道這意味着什麼。

編輯:這是我的設置: 我複製了32位文件夾的內容,以C:\mingw_dev_lib\sdl,導致C:\mingw_dev_lib\sdl\binC:\mingw_dev_lib\sdl\includeC:\mingw_dev_lib\sdl\libC:\mingw_dev_lib\sdl\share。 我將SDL2.dll複製到C:\Windows\System32C:\Windows\SysWOW64

在Code :: Blocks我的設置是這樣的:在build options,在linker settings標籤我把-lmingw32 -lSDL2main -lSDL2。在search directories選項卡中,在Compiler子標籤中我有C:\mingw_dev_lib\sdl\include\SDL2,在Linker子標籤中我有C:\mingw_dev_lib\sdl\lib

這得到了測試(你可以在第一個鏈接的頁面底部找到)的工作。但是,第二個程序(在第二個鏈接頁面的底部)給了我第三個鏈接中的錯誤。

+0

你的'SDL_platform.h'壞了。你在哪裏得到它?使用從libsdl.org下載的檔案中的標題。 DLL不會讓你編譯錯誤,所以它在這裏不相關。 – keltar

+0

我不知道它是如何發生的,但是我的SDL_platform.h確實被破壞了。通過更換它,問題得到解決。謝謝! – Wysaard

回答

0

所有你需要把SDL2.dllSysWOW64文件夾,因爲你是動態鏈接SDL2,當你執行程序,它需要找到SDL2.dll文件中基本上兩個文件夾的第一:

  1. 的該程序所在的文件夾。
  2. System32(或他的64位對應SysWOW64)。

所以我不能給你根據你得到的編譯錯誤一個準確的答案,請出示你如何SDL2包括和代碼::塊配置。

+0

我編輯了我的原始文章以包含有關我的配置的數據。這是你正在尋找的信息嗎? – Wysaard