2014-04-20 34 views
5

我試圖從源生成eduke32。使找不到SDL_mixer.h,但我包括SDL目錄

它需要,其中包括SDL_mixer.h。

我確實有它:

$ locate SDL_mixer.h 
/usr/include/SDL/SDL_mixer.h 

(我已經安裝傑韋利工具組,以及很多其他開發包)

但是當我開始建設,我得到的SDL_mixer文件不發現錯誤。

$ make 

Build started using: 
compiler: "gcc -Wimplicit -Wdeclaration-after-statement -O2 -funswitch-loops -fomit-frame-pointer -DNDEBUG -DUSING_LTO -flto -fno-stack-protector -W -Wall -Werror-implicit-function-declaration -Wpointer-arith -Wextra -funsigned-char -fno-strict-aliasing -DNO_GCC_BUILTINS -D_FORTIFY_SOURCE=2 -fjump-tables -Wno-unused-result -Wno-char-subscripts -DUSE_LIBPNG -DUSE_LIBVPX -Isource -Ibuild/include -Isource/jmact -Isource/jaudiolib/include -Isource/enet/include -fno-pic -DHAVE_GTK2 -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/usr/include/libdrm -I/usr/include/harfbuzz -DHAVE_INTTYPES -DSDL_TARGET=2 -I/usr/include/SDL2 -D_REENTRANT -DRENDERTYPESDL=1 -DMIXERTYPESDL=1 -Wno-strict-overflow -DUSE_OPENGL -DNOASM -DPOLYMER -Wno-attributes" 
linker: " -flto -Wl,-Map=start.memmap  -lrt -lFLAC -lvorbisfile -lvorbis -logg -lSDL2_mixer -lm -lvpx -lSDL2 -lpthread -ldl -pthread -lpng -lz " 
Built object source/obj/game.o 
Built object source/obj/global.o 
In file included from build/include/mutex.h:11:0, 
       from build/include/cache1d.h:7, 
       from source/duke3d.h:43, 
       from source/sdlmusic.c:39: 
build/include/sdl_inc.h:62:25: fatal error: SDL_mixer.h: No such file or directory 
# include "SDL_mixer.h" 
         ^
compilation terminated. 
Failed building source/obj/sdlmusic.o from source/sdlmusic.c! 

出現這種情況,即使我添加了包括-dir選項:

$ make --include-dir=/usr/include/SDL/ 

這裏發生了什麼?有人有線索?

+0

make的'--include-dir'參數是爲了使自己找到包含makefile而不是由make運行的源代碼編譯。您需要編輯相應的'./configure'或'CFLAGS'或類似的變量來將該路徑傳遞給實際的編譯。 –

+0

感謝您對--include-dir的解釋。我不習慣使用make,因爲你看到^ ^,無論如何,我找到了我的問題的原因,請參閱答案。 – Lioobayoyo

回答

2

我檢查Makefile文件,發現該程序正在尋找SDL ** 2 **/SDL_mixer.h

我安裝SDL2_mixer-devel包,一切都很好。

我在make中使用--include-dir選項似乎與我正在嘗試執行的操作無關。 (參見etan評論)