2016-06-28 36 views
0

我下載SDL來源'https://www.libsdl.org'如何使用SDL和gcc?

我使用cmake並獲取庫。

libSDL2.a 
libSDL2main.a 
libSDL2-2.0.so 
libSDL2-2.0.so.0 
libSDL2-2.0.so.0.4.0 

我寫main.c來測試SDL。

#include <SDL.h> 

int main() 
{ 
    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Quit(); 
    return 0; 
} 

我建立lib目錄。 我移動* .a文件和包含目錄。

vim main.c 
mkdir lib 
mv libSDL2.a libSDL2main.a ./lib 
mv /home/gakgu/다운로드/SDL2-2.0.4/include ./ 

然後嘗試編譯。

gcc -W -Wall -o main main.c -Iinclude -Llib -lSDL2 -lSDL2main 

but It is failed.

什麼問題?

+0

如果用靜態庫鏈接你應該拉它所有的依賴關係(在給定的情況下,是'-lpthread',但可能會有更多)。共享庫具有嵌入的依賴信息,因此不需要。 – keltar

回答

1

您必須在其他庫之前添加 - lpthread以鏈接線程支持。

你也應該讓多一點警告選項: - Wextra - pedantic

所以

gcc -W -Wall -Wextra -pedantic -o main main.c -Iinclude -lpthread -Llib -lSDL2 -lSDL2main