Установка box2d

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by RAINUR, 4 Apr 2011.

  1. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте..
    Скачал библиотеку box2d c сайта http://box2d.org/
    Но так и не понял как его установить:)
    Путь в примерах указывается так:
    #include <Box2D/Box2D.h>
    поэтому тупо взял папку Box2D, где находится Box2D.h и поместил в папку include, где установлен Cisual studio 2008.
    Инклуд проходит, но ошибка с линковкой:
    Code:
    1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
    1>Linking...
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: __thiscall b2World::~b2World(void)" (??1b2World@@QAE@XZ) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: void __thiscall b2World::ClearForces(void)" (?ClearForces@b2World@@QAEXXZ) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: void __thiscall b2World::Step(float,int,int)" (?Step@b2World@@QAEXMHH@Z) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: class b2Fixture * __thiscall b2Body::CreateFixture(struct b2FixtureDef const *)" (?CreateFixture@b2Body@@QAEPAVb2Fixture@@PBUb2FixtureDef@@@Z) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: class b2Fixture * __thiscall b2Body::CreateFixture(class b2Shape const *,float)" (?CreateFixture@b2Body@@QAEPAVb2Fixture@@PBVb2Shape@@M@Z) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: void __thiscall b2PolygonShape::SetAsBox(float,float)" (?SetAsBox@b2PolygonShape@@QAEXMM@Z) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: class b2Body * __thiscall b2World::CreateBody(struct b2BodyDef const *)" (?CreateBody@b2World@@QAEPAVb2Body@@PBUb2BodyDef@@@Z) referenced in function _main
    1>HelloWorld.obj : error LNK2019: unresolved external symbol "public: __thiscall b2World::b2World(struct b2Vec2 const &,bool)" (??0b2World@@QAE@ABUb2Vec2@@_N@Z) referenced in function _main
    1>HelloWorld.obj : error LNK2001: unresolved external symbol "public: virtual class b2Shape * __thiscall b2PolygonShape::Clone(class b2BlockAllocator *)const " (?Clone@b2PolygonShape@@UBEPAVb2Shape@@PAVb2BlockAllocator@@@Z)
    1>HelloWorld.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall b2PolygonShape::TestPoint(struct b2Transform const &,struct b2Vec2 const &)const " (?TestPoint@b2PolygonShape@@UBE_NABUb2Transform@@ABUb2Vec2@@@Z)
    1>HelloWorld.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall b2PolygonShape::RayCast(struct b2RayCastOutput *,struct b2RayCastInput const &,struct b2Transform const &)const " (?RayCast@b2PolygonShape@@UBE_NPAUb2RayCastOutput@@ABUb2RayCastInput@@ABUb2Transform@@@Z)
    1>HelloWorld.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall b2PolygonShape::ComputeAABB(struct b2AABB *,struct b2Transform const &)const " (?ComputeAABB@b2PolygonShape@@UBEXPAUb2AABB@@ABUb2Transform@@@Z)
    1>HelloWorld.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall b2PolygonShape::ComputeMass(struct b2MassData *,float)const " (?ComputeMass@b2PolygonShape@@UBEXPAUb2MassData@@M@Z)
    1>.\Debug/HelloWorld.exe : fatal error LNK1120: 13 unresolved externals
    1>Build log was saved at "file://c:\Documents and Settings\admin\Рабочий стол\MyGame\Физический движок\Box2D_v2.1.2\Box2D_v2.1.2\Box2D\HelloWorld\Debug\BuildLog.htm"
    1>HelloWorld - 14 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    
    
    Помогите пожалуйста.Как исправить и нормально все установить:)?
    Я просто новичок в С++ и толком ни чего не знаю.
     
  2. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    options>set library directory(set header directory)
    как-то так=)
    помню как-то mpi project компилил, там либу подцеплял к самому проекту
    короче пошевели мозгами тут ничего сложного нет=)
     
  3. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Возможно спросите почему не спрашиваю на форумах игроделов, спрашивал на gamedev.ru, видать они там такие умные что считают этот вопрос таким легким, что отвечать не стоит))))
    Искал в google,но ни чего путевого не нашел, кроме этого:
    Code:
    Elsedar	Постоялец	www	7 фев. 2010	11:48	#3
    
    Есть же русский мануал: 
    http://www.gamedev.ru/code/forum/?id=87747 
    Ну а скомпилить и подключить либу к проекту - элементарно. 
    Есть папка билд, там подпапки для разных сред. 
    Открываешь, компилишь, получаешь либу. 
    Добавляешь пути к либе и заголовочному файлу. Все.
    
    Но папка Build в архиве с box2d пуста.:)
     
  4. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    давай teamviewer id помогу
     
  5. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Если имеешь ввиду ссылку на тему в gamedev,то вот http://www.gamedev.ru/flame/forum/?id=145946
    А так я вроде разобрался,
    надо скачать cmake, после чего откомпилировать исходники box2d для visual studio 2010 и полученые *.lib файлы скинуть в папку с библиотеками visuak studio:)
    http://gcup.ru/forum/62-9280-1
     
  6. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    http://www.cmake.org/cmake/resources/software.html вот ссылка на cmake
    Завтра попробую, интернет очень плохой, скачивать будет долго)))