2011-03-30 17 views
5

hey il titolo dice quasi tutto. sto provando diversi metodi da fonti internet, ma ogni volta che provo qualcosa va storto..questo è dove ho ottenuto Box2DCome potrei costruire Box2D per lavorare in Code :: Blocks/Mingw32 (Windows)

in cMake, ottengo un sacco di errori durante la costruzione (stavo passando attraverso i passaggi nel readme.txt, ma sfortunatamente theyre per Visual C++ ...)

quindi mi stavo chiedendo come impostare una libreria (.lib o .a) e utilizzarla nel mio progetto (il mio amico mi ha passato la sua libreria e quando l'ho caricata e ho provato #include nelle intestazioni box2D, non hanno letto affatto (ho una lista di errori non definiti) anche il suo box2d è stato realizzato per linux/unix quindi penso che questo sia il motivo ...)

se qualcuno può aiutare a fornire alcuni passaggi che sarebbe bello.

grazie per la lettura.

risposta

10

Presupposti: È stato installato cmake. Hai installato Code :: Blocks/MinGW in C: \ codeblocks. Hai scaricato Box2D e l'hai estratto in C: \ Box2D_v2.1.2.

Se uno di quelli è sbagliato, modificare i percorsi per abbinare quello che hai.

Start-> Esegui-> cmd.

Accedere alla Box2D "Build" cartella:
cd C:\Box2D_v2.1.2\Box2D\Build

Creare i makefiles:
cmake -G "MinGW Makefiles" ..

farlo:
mingw32-make

Questo getterà alcuni avvertimenti, ma dovrebbe funzionare quasi completamente. Quindi, verso la fine, verrà tentato di compilare il Testbed. AFAIK, non c'è modo di compilare Testbed usando MinGW (devi usare Visual Studio, credo). Fortunatamente, un .exe di esso è disponibile sul sito di Box2D.

Nella cartella Box2D \ Build \ Box2D, ora dovrebbe esserci un file chiamato libBox2D.a. Copia questo file in C: \ codeblocks \ mingw \ lib.

Copia la cartella Box2D \ Box2D (quella contenente Box2D.h) in C: \ codeblocks \ mingw \ include. [Quindi, dopo questo passaggio, dovresti avere un file C: \ codeblocks \ mingw \ include \ Box2D \ Box2d.h e NOT C: \ codeblocks \ mingw \ include \ Box2d.h]

E questo è tutto . Dovresti essere in grado di compilare ed eseguire l'esempio "Hello Box2D". Non dimenticare di collegarti alla biblioteca.

[EDIT]

Dagli sguardi di vostro errore, ho intenzione di indovinare che la variabile di ambiente Path MinGW non è configurato correttamente. Il che è insolito, dal momento che quando si installa Code :: Blocks/MinGW di solito lo imposta per te, credo.

In ogni caso, (questi passaggi possono variare leggermente a seconda della versione di Windows):

destro del mouse su "[My] Computer" -> Proprietà -> Impostazioni di sistema avanzate
Fare clic su "Variabili d'ambiente"
A seconda di quale Windows si dispone, è possibile visualizzare variabili utente e variabili di sistema oppure potrebbe essere solo un gruppo (non ricordo il nome). In ogni caso, creare una nuova variabile di ambiente di sistema denominata MINGDIR, con il valore C:\codeblocks\mingw o ovunque l'abbia installata. Quindi, trovare la variabile denominata Path (o PATH) e aggiungerla alla fine: C:\codeblocks\mingw\bin. Metti un punto e virgola alla fine della voce precedente e non utilizzare uno spazio.
Assicurarsi inoltre che C:\CMake\bin sia presente nella variabile di sistema denominata Percorso o nella variabile utente denominata Percorso. Altrimenti, aggiungilo alla fine.
Penso sia così.

+0

hey. [questo] (http://pastebin.com/vdQ7ZFxV) è l'errore che ho avuto durante l'uso di 'cmake -G" MakeGiles MinGW "..' questi errori sembrano simili agli errori che ho avuto durante l'utilizzo del cmake gui .. .im pensare che qualcosa non sia impostato correttamente .. – Molmasepic

+0

WOOHOO !! ha funzionato! grazie mille! ora posso usare liberamente cmake. ancora grazie – Molmasepic

+0

+1 per questo. Sotto Eclipse CDT ha avuto problemi a trovare l'intestazione una volta che avevo costruito la lib usando le tue istruzioni. Probabilmente una cosa da noob, ma il processo di compilazione ha prodotto un'altra cartella "Box2D" in "Box2D/Build", quindi puntavo il linker a "/Box2D/Build/Box2D" nei suoi percorsi di ricerca invece di "/Box2D/Build" che ha trovato subito la lib (ovviamente, con il percorso di inclusione appropriato e le flag del linker impostate). –