這裏是我的一塊當前的Makefile的時候 ' 「SDL.h」 沒有這樣的文件或目錄中找到':編譯
CFLAGS = -O2 -Wall -pedantic -std=gnu++11 `sdl-config --cflags --libs` -lSDL_mixer
我已經libsdl正確安裝,SDL.h是在/ usr/include中/ SDL它屬於哪裏,但它不會編譯。我的.h文件中也有#include "SDL.h"
,但仍然沒有。
任何人都知道爲什麼?
這裏是我的一塊當前的Makefile的時候 ' 「SDL.h」 沒有這樣的文件或目錄中找到':編譯
CFLAGS = -O2 -Wall -pedantic -std=gnu++11 `sdl-config --cflags --libs` -lSDL_mixer
我已經libsdl正確安裝,SDL.h是在/ usr/include中/ SDL它屬於哪裏,但它不會編譯。我的.h文件中也有#include "SDL.h"
,但仍然沒有。
任何人都知道爲什麼?
如果頭文件是/usr/include/sdl/SDL.h
和你的代碼有:
#include "SDL.h"
您需要可以解決您的代碼:
#include "sdl/SDL.h"
或者告訴預處理器在哪裏可以找到包括文件:
CFLAGS = ... -I/usr/include/sdl ...
SDL的大部分時間在/usr/include/SDL
。如果是的話那麼你的#include <SDL.h>
指令是錯誤的,應該是#include <SDL/SDL.h>
。
另一種方法是將/usr/include/SDL
目錄添加到包含目錄中。要做到這一點,你應該如果您使用的是IDE,這應該是很容易的添加也向-I/usr/include/SDL
的編譯器標誌...
...
頭文件住在
/usr/include/SDL/SDL.h
在
在這個頭使用
#include <SDL.h>
你有
正確使用你的C++代碼拉`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`
與
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL
提供您Simple Direct Media Layer 2 (SDL2),在Ubuntu 16上安裝後。04通過:
sudo apt-get install libsdl2-dev
我用的標題:
#include <SDL2/SDL.h>
和編譯器鏈接器命令:
-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
注:你對他的'SDL-配置的使用校正--clfags --libs'是SDL2假的。 –