ПрограммированиеФорумФизика

как поставить Box2d??

Страницы: 1 2 Следующая »
#0
22:03, 2 сен 2012

скачал box, но не знаю как писать пути в ней (у меня vs2010), но я вроде написал путь инклюдов к коробке (это корневая папка box2d, где есть папки  Box2d, build, glui....), но куда прописывать библиотеки? я их вообще не нашел

#1
0:06, 3 сен 2012

так....я скомпилил библиотеки через вс2010, добавил путь к ним что дальше? не работает! опять ошибки -

1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall b2World::~b2World(void)" (??1b2World@@QAE@XZ) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall b2World::Step(float,int,int)" (?Step@b2World@@QAEXMHH@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class b2Fixture * __thiscall b2Body::CreateFixture(struct b2FixtureDef const *)" (?CreateFixture@b2Body@@QAEPAVb2Fixture@@PBUb2FixtureDef@@@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class b2Fixture * __thiscall b2Body::CreateFixture(class b2Shape const *,float)" (?CreateFixture@b2Body@@QAEPAVb2Fixture@@PBVb2Shape@@M@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall b2PolygonShape::SetAsBox(float,float)" (?SetAsBox@b2PolygonShape@@QAEXMM@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class b2Body * __thiscall b2World::CreateBody(struct b2BodyDef const *)" (?CreateBody@b2World@@QAEPAVb2Body@@PBUb2BodyDef@@@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall b2World::b2World(struct b2Vec2 const &)" (??0b2World@@QAE@ABUb2Vec2@@@Z) в функции _main
1>1.obj : error LNK2001: неразрешенный внешний символ ""public: virtual class b2Shape * __thiscall b2PolygonShape::Clone(class b2BlockAllocator *)const " (?Clone@b2PolygonShape@@UBEPAVb2Shape@@PAVb2BlockAllocator@@@Z)"
1>1.obj : error LNK2001: неразрешенный внешний символ ""public: virtual int __thiscall b2PolygonShape::GetChildCount(void)const " (?GetChildCount@b2PolygonShape@@UBEHXZ)"
1>1.obj : error LNK2001: неразрешенный внешний символ ""public: virtual bool __thiscall b2PolygonShape::TestPoint(struct b2Transform const &,struct b2Vec2 const &)const " (?TestPoint@b2PolygonShape@@UBE_NABUb2Transform@@ABUb2Vec2@@@Z)"
1>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>1.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall b2PolygonShape::ComputeAABB(struct b2AABB *,struct b2Transform const &,int)const " (?ComputeAABB@b2PolygonShape@@UBEXPAUb2AABB@@ABUb2Transform@@H@Z)"
1>1.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall b2PolygonShape::ComputeMass(struct b2MassData *,float)const " (?ComputeMass@b2PolygonShape@@UBEXPAUb2MassData@@M@Z)"
1>C:\Users\KSF\Documents\Visual Studio 2010\Projects\KSF (boost)\Debug\KSF (boost).exe : fatal error LNK1120: 13 неразрешенных внешних элементов

#2
3:34, 3 сен 2012

Прилинкуй библиотеки.

#3
11:46, 3 сен 2012

Прежде чем что-то линковать, это что-то надо сбилдить. В боксе есть специальный ридмишник по этому поводу, а для vs2010 так вообще, ЕМНИП, готовый проект был.

#4
13:30, 3 сен 2012

блин, я вовсе запутался что делать в cmake, скачал его, пробовал все по всякому делать, хз ниче не робит, даже какой-то premake скачал еще Оо
напишите пожалуйста что и как делать, очень хочется посмотреть box2d :) (и да, building.txt я почитал, но запутался...). напишите куда потом путь библиотек в ВС прописывать

#5
13:41, 3 сен 2012

Билд — это компиляция и линковка. Компиляция у тебя прошла успешно, проблема в линковке.

error LNK2019: ссылка на неразрешенный внешний символ 

тебе нужно добавить в проект .lib файл(ы) из Box2D SDK. Добавить можно в настройках проекта в секции линковки или через #pragma comment в коде.

Никакие дополнитльные cmake-и в Visual Studio тебе не нужны.

#6
14:25, 3 сен 2012

хм...теперь т.е. значит в Каталоги ссылок добавить путь до .lib (куда я скомпилил с помощью вс2010)? но я сделал и то же самое пишет  :(

#7
16:20, 3 сен 2012

KSF
Нет. Читай внимательно, что тебе пишут.

#8
16:44, 3 сен 2012

давно я таких полезных тем не встречал..

#9
18:25, 3 сен 2012

в настройках проекта в секции линковки

где это?

#10
20:21, 3 сен 2012

Блин это Oh My God! Тебе нужно нажать ALT+F7 в твоем проекте(на той странице где пишешь код игры :) ), откроется окно: далее выбирай "Свойство конфигурации"->"Каталоги VC++"-> укажи полный путь к библиотекам и DLL'кам.

#11
21:11, 3 сен 2012

С box2d будет ещё больше проблем =) раз тут такое.
Для начала стоит изучить MVS и C++.

#12
22:07, 3 сен 2012

Кстати
http://www.gamedev.ru/code/faq/LNK2001_external_symbol

#13
9:23, 4 сен 2012

wat
Почему стоит добавлять либу именно прагмой? Это какие-то тонкости  VS?

#14
12:35, 4 сен 2012

Проще прописать прагму где потребовалось прилинковать библиотеку, чем идти в свойства и прописывать ее там. Просто быстрее. Но так это у меня, у других думаю также. Ну и еще, при создании нового проекта и подключения готовых файлов не будет нужды опять прилинковывать, уже прописано в коде.

Страницы: 1 2 Следующая »
ПрограммированиеФорумФизика

Тема в архиве.