Liaison statique des bibliothèques SDL2

Je suis avec Windows 7, Code::Blocks et MinGW. J'ai peu ou pas d'expérience quand il s'agit de la compilation/construire quoi que ce soit, surtout quand Code::Blocks ne pas utiliser les fichiers makefile.

J'ai téléchargé SDL2-devel-2.0.0-mingw.tar.gz (SDL Bibliothèques de Développement) de http://www.libsdl.org/tmp/download-2.0.phpet j'aimerais créer un fichier exécutable autonome à l'aide de SDL2 bibliothèques, mais jusqu'à présent, j'ai toujours eu de regroupement de la SDL2.dll fichier avec le fichier exécutable pour le faire fonctionner.

J'ai entendu dire que je ne peux pas statique-lien bibliothèques dynamiques, donc ma seule option semble être de faire quelque chose avec les fichiers source en utilisant le fichier SDL2-2.0.0.tar.gz (le Code Source) à partir du lien que j'ai mentionné ci-dessus. Cependant, je ne sais pas ce que je dois faire avec ceux-ci.

Ce que j'ai pu essayer avec les fichiers de la source est d'importer le projet Visual Studio pour Code::Blocks et de le construire, mais il me dit "sdl-config Aucun fichier ou répertoire" (je ne sais pas ce qui a déclenché cette). Je suis également pas sûr si le bâtiment a simplement me donne un fichier exécutable, avec qui je ne sais pas ce que je peux faire un lien vers mon propre fichier exécutable.

Un imbécile preuve idiot de guide étape par étape serait le meilleur pari pour résoudre cette affaire.

EDIT:

J'ai réussi à compiler les bibliothèques SDL avec le guide Jonas fourni, et a obtenu un libSDL2.un fichier.

Au début, j'ai seulement ajouté le chemin de libSDL2.un "Lien bibliothèques:" -la section de Code::Blocks, mais j'ai eu un tas d'erreurs telles que "SDL_Init() non déclarée dans ce cadre".

En plus de la libSDL2.un chemin, j'ai également ajouté le chemin de la SDL2-2.0.0\include pour le Compilateur de recherche de répertoire ainsi que le chemin de la SDL2-2.0.0\build.libs pour l'éditeur de liens de recherche de répertoire. J'ai aussi écrit à mon fichier de test: #include "SDL.h". Mon fichier de test ressemble maintenant à ceci:

#include "SDL.h"

int main( int argc, char* args[] ) {
    //Start SDL
    SDL_Init( SDL_INIT_EVERYTHING );
    //Quit SDL
    SDL_Quit();
    return 0;
}

Il semble qu'il n'a corrigé la déclaration de problème, mais maintenant, Code::Blocks a ouvert un SDL_mmjoystick.c fichier et m'a donné encore plus d'erreurs: "undefined reference to 'waveInClose@4'", "undefined reference to 'waveOutClose@4'", "undefined reference to 'joyGetNumDevs@0'" et des tonnes d'autres.

Voici une capture d'écran de ce qui se passe, notez les différentes couleurs de #inclure des textes, je ne suis pas sûr de savoir pourquoi cela arrive: http://gyazo.com/00656a9c1e57a2bd0db1414fa7d68ced.png

Je ne suis pas sûr de la façon de correctement prendre cette bibliothèque. Toute aide dans ce cas, ou devrais-je faire une autre question?

EDIT:

J'ai ajouté -lSDL2 pour les options du linker et supprimé les autres paramètres. Maintenant, il s'appuie amende:

mingw32-g++.exe -Wall -fexceptions  -g    -IC:\Users\User\Desktop\SDL2-2.0.0\include  -c "C:\Users\User\Desktop\CppProjects\SDL project\main.cpp" -o obj\Debug\main.o
mingw32-g++.exe -Wall -fexceptions  -g    -IC:\Users\User\Desktop\SDL2-2.0.0\include  -c "C:\Users\User\Desktop\CppProjects\SDL project\thetestfile.cpp" -o obj\Debug\thetestfile.o
mingw32-g++.exe -LC:\Users\User\Desktop\SDL2-2.0.0\build\.libs  -o "bin\Debug\SDL project.exe" obj\Debug\main.o obj\Debug\thetestfile.o   -lSDL2  ..\..\SDL2-2.0.0\build\.libs\libSDL2.a C:\Users\User\Desktop\SDL2-2.0.0\build\.libs\libSDL2.a  -mwindows
Output size is 945.80 KB
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 0 warnings (0 minutes, 1 seconds)

Mais quand j'essaie de le lancer, il me dit que mon ordinateur manque de SDL2.dll tandis que le point de l'ensemble était de liaison statique.

Donc actuellement, j'ai du chemin à construire/.libs dans mon Lien bibliothèques -réglages, -lSDL2 dans les Autres options du linker, et pour les répertoires de recherche, j'ai le chemin de la SDL2-2.0.0/include pour le compilateur et SDL2-2.0.0/build/.libs pour l'éditeur de liens.

Dans le build/.répertoire libs, je peux aussi voir libSDL2.une, libSDL2.dll.une, libSDL2.la et libSDL2.lai fichiers, je ne sais pas ce qu'ils sont.

source d'informationauteur DispEd