Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 626
#1

Box2d как установить в проект? - C++

08.08.2014, 00:16. Просмотров 3124. Ответов 12
Метки нет (Все метки)

как Подключить box2d к VS 2012, искал в гугле там говорится нужно исходники скаченные с офф сайта скомпилировать Cmake. ну я попробывал, вышло но lib файлов так и не появилось. Просветите что ввобще делать то
как блин мне сюда вставить изображение!!! блокирует урл
s018 . radikal . ru / i520 / 1408 / 70 / 6fc64c842d62 . png

Добавлено через 51 минуту
*Собирал проект не было ошибок, Скомпилировал ошибка
unable start program ну тут путь...\Debug\ALL_BUILD
папка дебаг там пустая

Добавлено через 17 минут
отказано в доступе)

Добавлено через 43 минуты
ау есть кто живой?

Добавлено через 1 час 58 минут
Все решил, взял предыдущую версию box2d и скомпилировалась.
Еще раз спасибо за помощь)) 2рой раз подряд удивляюсь как только умеют люди не помогать)

Добавлено через 2 часа 11 минут
хотя нет не помогло

Добавлено через 3 минуты
либ появился но куда не ложи его ли в визуал прямо к либам ли то еще куда ему всеравно невидит его

Добавлено через 32 минуты
Код
Error	3	error LNK2019: unresolved external symbol "public: void __thiscall b2PolygonShape::SetAsBox(float,float)" (?SetAsBox@b2PolygonShape@@QAEXMM@Z) referenced in function _main	C:\Users\Yura\Desktop\proekts\naaruto\naaruto\naaruto.obj
и так далие...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2014, 00:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Box2d как установить в проект? (C++):

Как скопировать проект в другой проект для дальнейшей работы над новой версией (VS)? - C++
(Visual Studio 2013) Например я сделал один проект, пусть это будет проект версия №1, затем я захотел улучшить проект версии №1 и сделать...

Анимация в Box2D - C++
Наткнулась на видео с анимацией по Box2D. Только начала изучать и не понимаю, как работает этот проект. Поиски исходников не увенчались...

Не получается создать мир в Box2D - C++
скачал эту хорошую и удобную библиотеку. у меня версия 2.3.0. читаю документацию с сайтов: Руководство по Box2D и Box2D в...

Ненулевая масса статического объекта в Box2D - C++
Собственно как реализовать сабж?

Зачем нужно компилировать библиотеку C++ Box2d? - C++
Мне интересна причина того, почему разработчики некоторых C++ библиотек (в моей ситуации Box2d) не дают dll или lib библиотеки, а дают...

Box2d - создание в теле более одной фигуры\сенсора - C++
Вот у меня есть персонаж - вот так он создается player = lvl->GetObject("Naruto"); b2BodyDef bodyDef; bodyDef.type =...

12
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
08.08.2014, 00:19 #2
Цитата Сообщение от Lynatik001 Посмотреть сообщение
error LNK2019: unresolved external symbol
в 99% случаев не подключена нужная библиотека к проекту.
0
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 626
08.08.2014, 00:36  [ТС] #3
Цитата Сообщение от Tulosba Посмотреть сообщение
в 99% случаев не подключена нужная библиотека к проекту.
Box2D.lib
Да я ее даже в сам визуал кинул
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib
и в линкер добавил...

Добавлено через 56 секунд
#pragma comment(lib,"Box2D.lib")
даже вот так пробывал
0
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
08.08.2014, 10:35 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Откройте в VS Box2D_v2.3.0\Box2D\Build\vs2012\Box2D.sln
Пробуйте собирать (F7).

Если все нормально, то в Box2D_v2.3.0\Box2D\Build\vs2012\bin\[Debug|Release] будут лежать библиотечные файлы и тестовые программы HelloWorld.exe и Testbed.exe

Пробуем создать свой проект:
В VS пустое консольное приложение, добавляем новый исходный файл, тупо копируем в него текст HelloWorld.cpp из Box2D, создаем в папке проекта папку contrib, в ней include и lib, в include копируем Box2D_v2.3.0\Box2D\Box2D в lib папки Debug, Release из Box2D_v2.3.0\Box2D\Build\vs2012\bin. Уже почищенная от ненужных файлов структура каталогов проекта:
Кликните здесь для просмотра всего текста
Код
C:.
|   
\---testBox2D
    |   main.cpp
    |   testBox2D.sln
    |   testBox2D.vcxproj
    |   
    \---contrib
        +---include
        |   \---Box2D
        |       |   Box2D.h
        |       |   
        |       +---Collision
        |       |   |   b2BroadPhase.h
        |       |   |   b2Collision.h
        |       |   |   b2Distance.h
        |       |   |   b2DynamicTree.h
        |       |   |   b2TimeOfImpact.h
        |       |   |   
        |       |   \---Shapes
        |       |           b2ChainShape.h
        |       |           b2CircleShape.h
        |       |           b2EdgeShape.h
        |       |           b2PolygonShape.h
        |       |           b2Shape.h
        |       |           
        |       +---Common
        |       |       b2BlockAllocator.h
        |       |       b2Draw.h
        |       |       b2GrowableStack.h
        |       |       b2Math.h
        |       |       b2Settings.h
        |       |       b2StackAllocator.h
        |       |       b2Timer.h
        |       |       
        |       +---Dynamics
        |       |   |   b2Body.h
        |       |   |   b2ContactManager.h
        |       |   |   b2Fixture.h
        |       |   |   b2Island.h
        |       |   |   b2TimeStep.h
        |       |   |   b2World.h
        |       |   |   b2WorldCallbacks.h
        |       |   |   
        |       |   +---Contacts
        |       |   |       b2ChainAndCircleContact.h
        |       |   |       b2ChainAndPolygonContact.h
        |       |   |       b2CircleContact.h
        |       |   |       b2Contact.h
        |       |   |       b2ContactSolver.h
        |       |   |       b2EdgeAndCircleContact.h
        |       |   |       b2EdgeAndPolygonContact.h
        |       |   |       b2PolygonAndCircleContact.h
        |       |   |       b2PolygonContact.h
        |       |   |       
        |       |   \---Joints
        |       |           b2DistanceJoint.h
        |       |           b2FrictionJoint.h
        |       |           b2GearJoint.h
        |       |           b2Joint.h
        |       |           b2MotorJoint.h
        |       |           b2MouseJoint.h
        |       |           b2PrismaticJoint.h
        |       |           b2PulleyJoint.h
        |       |           b2RevoluteJoint.h
        |       |           b2RopeJoint.h
        |       |           b2WeldJoint.h
        |       |           b2WheelJoint.h
        |       |           
        |       \---Rope
        |               b2Rope.h
        |               
        \---lib
            +---Debug
            |       Box2D.lib
            |       
            \---Release
                    Box2D.lib

В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib

F7 -- все компилируется, все работает.

Архив с проектом: testBox2D.zip
1
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 626
08.08.2014, 16:21  [ТС] #5
Цитата Сообщение от BlackIce Посмотреть сообщение
Откройте в VS Box2D_v2.3.0\Box2D\Build\vs2012\Box2D.sln
Пробуйте собирать (F7).
Если все нормально, то в Box2D_v2.3.0\Box2D\Build\vs2012\bin\[Debug|Release] будут лежать библиотечные файлы и тестовые программы HelloWorld.exe и Testbed.exe
Пробуем создать свой проект:
В VS пустое консольное приложение, добавляем новый исходный файл, тупо копируем в него текст HelloWorld.cpp из Box2D, создаем в папке проекта папку contrib, в ней include и lib, в include копируем Box2D_v2.3.0\Box2D\Box2D в lib папки Debug, Release из Box2D_v2.3.0\Box2D\Build\vs2012\bin. Уже почищенная от ненужных файлов структура каталогов проекта:
Кликните здесь для просмотра всего текста
В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib
F7 -- все компилируется, все работает.
Архив с проектом: testBox2D.zip
Спасибо)
1
Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 209
08.04.2015, 15:00 #6
у меня подобная проблема.
все вроде сделал только не понял последнее:
Цитата Сообщение от BlackIce Посмотреть сообщение
В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib
как их прописать?
пробовал так(рисунок), пишет:
Код
1>Исходный код.obj : error LNK2001: неразрешенный внешний символ ""public: virtual class b2Shape * __thiscall b2PolygonShape::Clone(class b2BlockAllocator *)const " (?Clone@b2PolygonShape@@UBEPAVb2Shape@@PAVb2BlockAllocator@@@Z)"
1>Исходный код.obj : error LNK2001: неразрешенный внешний символ ""public: virtual int __thiscall b2PolygonShape::GetChildCount(void)const " (?GetChildCount@b2PolygonShape@@UBEHXZ)"
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall b2PolygonShape::SetAsBox(float,float)" (?SetAsBox@b2PolygonShape@@QAEXMM@Z) в функции _main
1>Исходный код.obj : error LNK2001: неразрешенный внешний символ ""public: virtual bool __thiscall b2PolygonShape::TestPoint(struct b2Transform const &,struct b2Vec2 const &)const " (?TestPoint@b2PolygonShape@@UBE_NABUb2Transform@@ABUb2Vec2@@@Z)"
1>Исходный код.obj : error LNK2001: неразрешенный внешний символ ""public: virtual bool __thiscall b2PolygonShape::RayCast(struct b2RayCastOutput *,struct b2RayCastInput const &,struct b2Transform const &,int)const " (?RayCast@b2PolygonShape@@UBE_NPAUb2RayCastOutput@@ABUb2RayCastInput@@ABUb2Transform@@H@Z)"
1>Исходный код.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall b2PolygonShape::ComputeAABB(struct b2AABB *,struct b2Transform const &,int)const " (?ComputeAABB@b2PolygonShape@@UBEXPAUb2AABB@@ABUb2Transform@@H@Z)"
1>Исходный код.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall b2PolygonShape::ComputeMass(struct b2MassData *,float)const " (?ComputeMass@b2PolygonShape@@UBEXPAUb2MassData@@M@Z)"
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class b2Fixture * __thiscall b2Body::CreateFixture(struct b2FixtureDef const *)" (?CreateFixture@b2Body@@QAEPAVb2Fixture@@PBUb2FixtureDef@@@Z) в функции _main
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class b2Fixture * __thiscall b2Body::CreateFixture(class b2Shape const *,float)" (?CreateFixture@b2Body@@QAEPAVb2Fixture@@PBVb2Shape@@M@Z) в функции _main
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall b2World::b2World(struct b2Vec2 const &)" (??0b2World@@QAE@ABUb2Vec2@@@Z) в функции _main
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall b2World::~b2World(void)" (??1b2World@@QAE@XZ) в функции _main
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class b2Body * __thiscall b2World::CreateBody(struct b2BodyDef const *)" (?CreateBody@b2World@@QAEPAVb2Body@@PBUb2BodyDef@@@Z) в функции _main
1>Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall b2World::Step(float,int,int)" (?Step@b2World@@QAEXMHH@Z) в функции _main
1>C:\Users\Administrator\documents\visual studio 2013\Projects\каробка 2д\Debug\каробка 2д.exe : fatal error LNK1120: неразрешенных внешних элементов: 13
0
Миниатюры
Box2d как установить в проект?  
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
08.04.2015, 16:46 #7
В ответе есть ссылка на архив с готовым рабочим проектом.
Скачайте, откройте в VS, посмотрите в каких папках и что лежит в самой папке проекта.
Разберитесь и сделайте аналогично.
Вы там какую-то фигню понаписали в опции "компоновщик - дополнительные каталоги библиотек".
0
Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 209
08.04.2015, 17:01 #8
скачал проект. попробовал открыть, мне написало что старая версия проекта(у меня на компе 2013 а у вас 11).
у меня автоматом перевело на мою версию. попробовал компилить пишет:


Кликните здесь для просмотра всего текста
1>box2d.lib(b2PolygonShape.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Body.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2World.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Fixture.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2BroadPhase.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ContactManager.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Island.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Joint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PulleyJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Contact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2WorldCallbacks.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ContactSolver.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2DistanceJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2WheelJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2MouseJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2RevoluteJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PrismaticJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2GearJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2WeldJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2FrictionJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2RopeJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2MotorJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2CircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PolygonAndCircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PolygonContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2EdgeAndCircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2EdgeAndPolygonContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ChainAndCircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ChainAndPolygonContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ChainShape.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2EdgeShape.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>C:\Users\Administrator\Documents\Visual Studio 2013\Projects\testBox2D\testBox2D\Debug\testBox2D.exe : fatal error LNK1319: обнаружено несоответствий: 31
0
Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 209
10.04.2015, 20:53 #9
BlackIce, ответьте!

Добавлено через 9 часов 20 минут
какую информацию еще предоставить?
0
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
10.04.2015, 22:04 #10
Как вы собираетесь использовать Box2D, если вы её даже подключить не можете?
0
Croessmah
Ушел
13783 / 8033 / 928
Регистрация: 27.09.2012
Сообщений: 19,802
Записей в блоге: 3
Завершенные тесты: 1
10.04.2015, 22:34 #11
Цитата Сообщение от castaway Посмотреть сообщение
Как вы собираетесь использовать Box2D, если вы её даже подключить не можете?
как всегда - на авось
0
lss
926 / 855 / 282
Регистрация: 10.10.2012
Сообщений: 2,705
10.04.2015, 23:16 #12
Цитата Сообщение от Справлюсь Посмотреть сообщение
у меня подобная проблема.
все вроде сделал только не понял последнее:
Сообщение от BlackIce
В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib
Цитата Сообщение от Справлюсь Посмотреть сообщение
как их прописать?
С/С++ - общие - дополнительные каталоги включаемых файлов: пишешь здесь путь к папке include.
Компоновщик - общие - дополнительные каталоги библиотек: пишешь здесь путь к папке lib/debug (если debug собираешь).
Компоновщик - ввод - дополнительные зависимости: пишешь здесь названия подключаемых lib файлов: box2d.lib
1
Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 209
11.04.2015, 06:08 #13
СПАСИБО!!!
0
11.04.2015, 06:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2015, 06:08
Привет! Вот еще темы с ответами:

Ошибка при запуске Box2d Visual Studio 2013 - C++
Добрый день! Подскажите. Пытаюсь запустить Box2d. Суть проблемы в следующем. Со сборкой библиотеки проблем нет. Проблема заключается в...

Box2d лаги при создании более трех динамик объектов - C++
С чем столкнулся когда делал пример что бы понять как управлятся с box2d все решил, но была проблема с тем что при создании динамических...

Как сделать сложный проект(.ехе+.dll)? Как там они сводятся? - C++
Как сделать сложный проект(.ехе+.dll)? Как там они сводятся?

Подскажите хороший компилятор, как его установить, как им пользоваться? - C++
Подскажите хороший компилятор, как его установить, как им пользоваться??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru