Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Dev-Cpp ja Box2D

Haraldinho [08.10.2014 00:06:12]

#

Hei! Päätin kokeilla Box2D-fysiikkamoottoria C++:lla käyttäen Dev-Cpp-kehitysympäristöä (v.4.9.9.2). En kuitenkaan onnistu suorittamaan ensimmäistäkään ohjelmaa, en edes mukana tulevaa HelloWorld-esimerkkiä. Mitä tahansa kokeilenkin, kääntäjä sanoo esim:

[Linker error] undefined reference to `b2World::b2World(b2Vec2 const&)'
[Linker error] undefined reference to `b2World::CreateBody(b2BodyDef const*)'
[sama jatkuu ties kuinka monta riviä...]

Ja kerronpa vielä mitä olen tehnyt:
Ensin latasin paketinhallinnan kautta Box2D-kirjaston. Sitten loin uuden projektin ja valitsin projektin tyypiksi "Box2D Project", jolloin linkkerin parametrilistassa näkyi seuraavanlainen rivi: -lBox2D.

Sitten suoritin ohjelman.

Tässä vielä kyseisen ohjelman lähdekoodi Google codessa

Niin ja olen kyllä Googlettanut kuumeisesti löytämättä apua joten olisin tosi iloinen jos kertoisitte mitä tein väärin, mitä jätin tekemättä tai mitä voisin tehdä :)

vuokkosetae [08.10.2014 11:20:56]

#

-lBox2D on jo hyvä alku. Kuitenkin nyt pitää tietää missä tuo kirjasto on ja antaaa -Lpolku/oikeaan/paikkaan optio, jotta kääntäjä löytää sen.

Haraldinho [08.10.2014 18:42:20]

#

Eikös se kirjasto ole "lib/libBox2D.a", joka on siis IDE:n kotikansiossa? Käsittääkseni. Ja Box2D-projektini on myös IDE:n kotikansiossa olevassa kansiossa, joten miten linkitys onnistuu? Enkä totta puhuen täysin ymmärtänyt mitä tarkoitit -Lpolku-jutulla :/

vuokkosetae [09.10.2014 00:29:47]

#

-l valitsin ottaa vastaa -lkirjasto ja linkkaa tiedoston libkirjasto.nytenmuista

Noita kirjastoja etsitään sitten eri paikoista ja -Lpolku lisää niitä hakupaikkaan. Yleensä lähinnä vain kääntäjän omasta puusta. Siis sieltä mistä esimerkiksi -lm tulee näppärästi mukaan. Jos näet miten se kääntäjä kääntää sen ohjelman voit yrittää niin voit arvata oikein. Ja jos on vaikka jos tuo lib hakemisto on suhteessa helloworldiin ../lib/ hakemistossa, pitää tuo tosiaankin saada sille kääntäjälle.

Tämäkin vastaus täysin kristallipallostani revittynä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta