2012-05-07 9 views
14

यहाँ मेरे वर्तमान Makefile का एक टुकड़ा है:' "SDL.h" ऐसी कोई फ़ाइल या निर्देशिका खोजी' जब संकलन

CFLAGS = -O2 -Wall -pedantic -std=gnu++11 `sdl-config --cflags --libs` -lSDL_mixer 

मैं libsdl ठीक से स्थापित है, SDL.h/usr/शामिल/SDL में है जहां यह संबंधित है, लेकिन यह संकलित नहीं होगा। मेरे पास मेरी .h फाइलों में #include "SDL.h" भी है, लेकिन अभी भी नहीं जाना है।

कोई भी जानता है क्यों?

उत्तर

14

तो हेडर फाइल /usr/include/sdl/SDL.h है और अपने कोड है:

#include "sdl/SDL.h" 

या फ़ाइलों में शामिल हैं खोजने के लिए जहां पूर्वप्रक्रमक बता:

#include "SDL.h" 

आप या तो अपने कोड को ठीक करने की जरूरत है

CFLAGS = ... -I/usr/include/sdl ... 
5

अधिकांश बार एसडीएल /usr/include/SDL में है। यदि ऐसा है तो आपका #include <SDL.h> निर्देश गलत है, यह #include <SDL/SDL.h> होना चाहिए।

इसके लिए एक विकल्प आपकी निर्देशिका में /usr/include/SDL निर्देशिका जोड़ रहा है। कि आप संकलक झंडे को -I/usr/include/SDL ...

जोड़ने आप एक IDE का उपयोग कर रहे हैं, तो यह काफी आसान भी होना चाहिए ऐसा करने के लिए ...

0

हेडर फाइल

/usr/include/SDL/SDL.h 
में

पर रहता है आपके C++ इस शीर्षक में कोड पुल का उपयोग कर

#include <SDL.h> 

आप

का सही उपयोग हो
`sdl-config --cflags --libs` 

आप दे देंगे जो

-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT 
-L/usr/lib/x86_64-linux-gnu -lSDL 

समय में आप भी इस प्रयोग जो एक मानक के लिए काम करता

`pkg-config --cflags --libs sdl` 

स्थापित जो Simple Direct Media Layer 2 लिए

-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL 
+0

नोट: 'SDL-config के बारे में उनकी उपयोग पर अपने सुधार --clfags --libs' SDL2 के लिए गलत है। –

8

साथ आप की आपूर्ति देख सकते हैं (एसडीएल 2), इसे उबंटू 16 पर स्थापित करने के बाद।04 के माध्यम से:

#include <SDL2/SDL.h> 

और संकलक लिंकर आदेश:

sudo apt-get install libsdl2-dev 

मैं हैडर इस्तेमाल किया साथ ही

-lSDL2main -lSDL2 

, आप भी स्थापित करना चाहते हो सकता है:

apt-get install libsdl2-image-dev 
apt-get install libsdl2-mixer-dev 
apt-get install libsdl2-ttf-dev 

इन शीर्षकों के साथ:

#include <SDL2/SDL_image.h> 
#include <SDL2/SDL_ttf.h> 
#include <SDL2/SDL_mixer.h> 

और संकलक लिंकर कमांड:

-lSDL2_image 
-lSDL2_ttf 
-lSDL2_mixer