2011-07-27 80 views
19

我正在嘗試關注Lazy Foo's教程。但是,當我嘗試運行的他的例子之一,我得到這個編譯器錯誤:SDL/SDL_image.h:沒有這樣的文件或目錄

error: SDL/SDL_image.h: No such file or directory

的編譯器/連接設置正確,我使用的代碼::在Windows XP塊。

但是,問題很簡單,就是沒有SDL_image.h。我已經檢查過它應該是的文件夾。我試圖再次下載SDL庫並再次檢查,仍然沒有SDL_image.h文件。 SDL_image.h文件去了哪裏?

我dowloaded該庫是 'SDL-devel的-1.2.14-mingw32.tar.gz' 下 '開發庫' 爲Win32從這個鏈接:http://www.libsdl.org/download-1.2.php

+1

AFAIK包含與SDL相關的」官方「方式頭文件是#include「SDL.h」 – trenki

+0

@trenki:雖然它通常位於'/ usr/include/SDL'上unixlike boxery –

+2

@phresnel:我知道,這就是爲什麼'sdl-config --cflags - libs'包含'-I/usr/include/SDL' – trenki

回答

32

您需要單獨安裝SDL_image。它不隨SDL提供。

+2

對於那些使用SDL2的用戶,文件名已經更改爲「SDL2_image.h」。 wiki.libsdl.org/MigrationGuide#line-435 –

+0

在我的盒子裏,該文件位於/usr/local/include/SDL2/SDL_image.h。本質上,需要從「SDL2/SDL_image.h」導入並鏈接到-lSDL_image。 – alok

+0

@BitFracture可能取決於它,對我來說它仍然是'SDL_image.h',確切的說就是'SDL2/SDL_image.h'。 –

3

在lazyfoo的第三個教程中有完整的解釋。

基本上,您必須在編譯行中添加「-lSDL_image」。

1

在你的情況,你使用的是Windows,那麼你應該先安裝sdl_image然後

#include <SDL_image.h> 

#include <SDL/SDL_image.h> 

如果您正在使用Linux和您的sdl-image軟件包安裝到/usr/include/SDL然後您需要使用

#include <SDL_image.h> 

I大多數情況下,當你從源代碼安裝在Linux中。你的包可能無法在/usr/include/SDL

駐留在這些樣的狀況,我用

#include <SDL/SDL_image.h> 

和它的作品

0

你必須下載 「SDL_image-devel的-1.2.4-VC6。拉鍊」 代碼塊 下載鏈接» http://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.4-VC6.zip

副本存在於包括文件夾中的文件,你會發現拉鍊連接的內然後將其粘貼到我的C:\ SDL \ include \ SDL中,或粘貼到您的其他SDL * .h所在的目錄中。

同理,複製壓縮文件lib文件夾中的文件並將其粘貼到C:\ SDL \ lib或其他lib文件所在的文件夾中。 然後複製所有存在的* .dll文件在存檔中到C:\ windows \ system32 此外,您必須通過打開設置>編譯器&調試器>鏈接器將「-lSDL_image」添加到編譯行。

然後打開一個空文件項目並將空文件添加到項目中,然後#include「SDL \ SDL_image.h」 希望它適合您!從上面的鏈接,並 轉到鏈接>>http://www.lazyfoo.net/SDL_tutorials/lesson03/windows/codeblocks/index.php

或者

首先下載SDL_image-devel-1.2.4-VC6.zip進行更詳細的解釋。

1

您需要安裝SDL_image圖書館像其他的答案中提到,如果你是一個基於Debian的系統,你可以簡單地用下面的命令來安裝:

sudo apt-get install libsdl-image1.2-dev 
0

對於任何嘗試此操作的人都會更新「-lSDL2_image」到您的編譯行。其他人只是簡單地有-lSDL_image「在SDL2發佈時發生了變化,然後進入bin並將所有.dll文件添加到System32中,並且您應該全部設置好了!

相關問題