2016-06-28 11 views
0

Ich lade SDL Quelle bei 'https://www.libsdl.org'Wie verwende ich SDL mit gcc?

Ich benutze cmake und Bibliothek zu bekommen.

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

Ich schreibe main.c, um SDL zu testen.

#include <SDL.h> 

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

Ich mache Lib-Verzeichnis. Ich verschiebe * .a Datei und Include-Verzeichnis.

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

Dann versuchen Sie kompilieren.

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

but It is failed.

Was ist das Problem?

+0

Wenn Sie mit statischen Bibliothek verknüpfen sollen Sie alle seine Abhängigkeiten ziehen (in diesem konkreten Fall es ist '-lpthread', aber es kann mehr geben). Gemeinsame Bibliotheken haben Abhängigkeitsinformationen eingebettet, so dass es nicht erforderlich ist. – keltar

Antwort

1

Sie müssen - lpthread vor anderen Bibliotheken hinzufügen, um die Threading-Unterstützung zu verknüpfen.

Sie sollten auch ein bisschen mehr Warnung Option aktivieren: - Wextra-pedantic

So

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