скачал box, но не знаю как писать пути в ней (у меня vs2010), но я вроде написал путь инклюдов к коробке (это корневая папка box2d, где есть папки Box2d, build, glui....), но куда прописывать библиотеки? я их вообще не нашел
так....я скомпилил библиотеки через вс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 неразрешенных внешних элементов
Прилинкуй библиотеки.
Прежде чем что-то линковать, это что-то надо сбилдить. В боксе есть специальный ридмишник по этому поводу, а для vs2010 так вообще, ЕМНИП, готовый проект был.
блин, я вовсе запутался что делать в cmake, скачал его, пробовал все по всякому делать, хз ниче не робит, даже какой-то premake скачал еще Оо
напишите пожалуйста что и как делать, очень хочется посмотреть box2d :) (и да, building.txt я почитал, но запутался...). напишите куда потом путь библиотек в ВС прописывать
Билд — это компиляция и линковка. Компиляция у тебя прошла успешно, проблема в линковке.
error LNK2019: ссылка на неразрешенный внешний символ
тебе нужно добавить в проект .lib файл(ы) из Box2D SDK. Добавить можно в настройках проекта в секции линковки или через #pragma comment в коде.
Никакие дополнитльные cmake-и в Visual Studio тебе не нужны.
хм...теперь т.е. значит в Каталоги ссылок добавить путь до .lib (куда я скомпилил с помощью вс2010)? но я сделал и то же самое пишет :(
KSF
Нет. Читай внимательно, что тебе пишут.
давно я таких полезных тем не встречал..
в настройках проекта в секции линковки
где это?
Блин это Oh My God! Тебе нужно нажать ALT+F7 в твоем проекте(на той странице где пишешь код игры :) ), откроется окно: далее выбирай "Свойство конфигурации"->"Каталоги VC++"-> укажи полный путь к библиотекам и DLL'кам.
С box2d будет ещё больше проблем =) раз тут такое.
Для начала стоит изучить MVS и C++.
wat
Почему стоит добавлять либу именно прагмой? Это какие-то тонкости VS?
Проще прописать прагму где потребовалось прилинковать библиотеку, чем идти в свойства и прописывать ее там. Просто быстрее. Но так это у меня, у других думаю также. Ну и еще, при создании нового проекта и подключения готовых файлов не будет нужды опять прилинковывать, уже прописано в коде.
Тема в архиве.